HTTP请求报文分为三个部分:请求报文行、请求报文头、请求报文体
②为请求对应的URL地址,它和报文头的Host属性组成完整的请求URL,③是协议名称及版本号。
Accept
请求报文可通过一个“Accept”报文头属性告诉服务端 客户端接受什么类型的响应。
Referer
表示这个请求是从哪个URL过来的,假如你通过google搜索出一个商家的广告页面,你对这个广告页面感兴趣,鼠标一点发送一个请求报文到商家的网站,这个请求报文的Referer报文头属性值就是http://www.google.com。
Cookie
客户端的Cookie就是通过这个报文头属性传给服务端的
Accept-language
请求头允许客户端声明它可以理解的自然语言
User-Agent
简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等(百度百科)
Content-Type
请求的内容数据类型
application/x-www-form-urlencoded
:数据被编码为名称/值对。这是标准的编码格式。
multipart/form-data
: 数据被编码为一条消息,页上的每个控件对应消息中的一个部分。
text/plain
: 数据以纯文本形式(text/json/xml/html)进行编码,其中不含任何控件或格式字符。
Host
访问相同主机(IP)的某个站点
Content-Length
用于描述HTTP消息实体的传输长度,在HTTP协议中,消息实体长度和消息实体的传输长度是有区别,比如说zip压缩下,消息实体长度是压缩前的长度,消息实体的传输长度是zip压缩后的长度。
Connection
表示客户端与服务连接类型
Cache-Control
对缓存进行控制,如一个请求希望响应返回的内容在客户端要被缓存一年,或不希望被缓存就可以通过这个报文头达到目的。 Cache-Control: no-cache
Cookie
指某些网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据(通常经过加密)。定义于 RFC2109 和 2965 中的都已废弃,最新取代的规范是 RFC6265 [1] 。(可以叫做浏览器缓存)
请求报文体
请求参数
HTTP响应报文分为三个部分:响应报文行、响应报文头、响应报文体
①报文协议及版本;
②状态码及状态描述;
③响应报文头,也是由多个属性组成;
④响应报文体,即我们真正要的“干货”。
Set-Cookie
服务端可以设置客户端的Cookie,其原理就是通过这个响应报文头属性实现的: