HTTP与HTTP协议
本篇文章简单普及一些HTTP与HTTP协议的的相关内容。
一、HTTP
1、HTTP介绍
HTTP(超文本传输协议)详细规定了浏览器和万维网服务器之间互相通信的规则,其实就是一套通信规则;
规定了客户端发送给服务器的内容格式,叫请求协议;
也规定了服务器发送给客户端的内容格式,称为响应协议。
2、URL是什么?
统一资源定位符,其实就是一个网址,格式是:“协议名://域名:端口/路径”;
例如:http://www.baidu.cn:80/index.html
二、请求协议
1、请求协议的格式
- 请求首行;(网址前端,请求方式、请求路径、协议和版本)
- 请求头信息;(键值对,请求头名称:请求头内容)
- 空行; (用来与请求体分隔开)
- 请求体。 (请求的内容, GET没有请求体,只有POST有请求体)
注意:浏览器发送给服务器的内容就这个格式的,如果不是这个格式服务器将无法解读!
2、GET请求
特点:HTTP默认请求方式、没有请求体、请求数据会暴露在地址栏中
常见的GET:1)在浏览器的地址栏中直接给出URL;2)点击页面上的超链接;3)提交表单时,表单默认使用GET请求,但可以设置为POST
3、常见请求头
- Response Header:响应头
- Request Header:请求头
- Accept:服务端能接收的文档类型(有优先级)
- Accept-Encoding:支持的文档压缩类型
- Accept-language:能接收的语言
- Connection:客户端支持的连接方式
- Content-Type: 表单的数据类型
- Cookie:一堆无意义的键值对,(请求中把上一次服务器响应中发送过来的Cookie在请求中一并发送去过)
- Host:域名(主机地址)
- User-Agent:访问用户的浏览器和主机信息
4、post请求
特点:数据不会出现在地址栏中、 数据的大小没有上限、有请求体
注意:请求体中如果有中文或特殊符号,会使用URL编码
如:%E5%BC%A0%E4%B8%89&password=123
5、修改网页提交方式为post请求
<form action="" method="post">
用户:<input type="text" name="user"/>
<input type="submit" value="提交"/>
</form>
三、响应协议
1、响应协议格式
响应首行;
响应头信息;
空行;
响应体。
注意:响应内容是由服务器发送给浏览器的内容,浏览器会根据响应内容来显示。
2、响应信息
HTTP/1.1 200 OK:响应协议为HTTP1.1,状态码为200,表示请求成功,OK是对状态码的解释;
Server:WSGIServer/0.2 CPython/3.5.2:服务器的版本信息; Content-Type;
text/html;charset=UTF-8:响应体使用的编码为UTF-8; Content-Length: 724:响应体为724字节;
et-Cookie: JSESSIONID=C97E2B4C55553EAB46079A4F263435A4;
Path=/hello:响应给客户端的Cookie; Date: Sun, 25 Sep 2020 05:22:04
GMT:响应的时间,这可能会有8小时的时区差;
3、状态码
它能够说明响应的真正含义。
200:请求成功,浏览器会把响应体内容(通常是html)显示在浏览器中;
404:请求的资源没有找到,说明客户端错误的请求了不存在的资源;
500:请求资源找到了,但服务器内部出现了错误;
302:重定向,当响应码为302时,表示服务器要求浏览器重新再发一个请求,服务器会发送一个响应头Location,它指定了新请求的URL地址。