以前文章中简介过http/1.1的通用首部字段《常见通用首部字段》,可是在那篇文章只是简介一下,没有具体解释,很多小伙伴看完也是只知其一;不知其二,接下来我们就看一下通用首部字段的详解。缓存
因为Cache-Control 比较特殊,会在《Cache-Control 用法》,今天就不在这讲解了服务器
1 Connection post
Connection 有两个做用。编码
控制不在转发给代理的首部字,看图3d
控制持久链接,看图代理
http/1.1版本的默认链接都是持久链接。为此,客户端会持久链接上持续发送请求,当服务器端想明确断开时,则指定Connect 首部字段值为Closecdn
2 date对象
首部通用字段Date代表建立http报文的日期和时间。blog
3 Pragma报文指令资源
pragma是http/1.1 以前版本的历史遗留字段,仅做为与http/1.0的向后兼容而定义。
规范定义的形式惟一
Pragma:no-cache
该首部字段虽然属于通用字段,但只用于客户端送请求中。客户端能够要求全部的中间服务器不返回缓存的资源。
全部的中间服务器若是都是以http/1.1为基准,那么直接采用Cache-Control:no-cache指定不走缓存最为理想。但要总体掌控所有中间服务器使用http协议版本是不现实的,所以,发送请求时会同时包含下面两个首部字段
Cache-Control:no-cache
Pragma:no-cache
4 Trailer 报文末端一览,看图
首部字段Trailer会事先说明在报文主体后记录了那些首部字段。该首部字段可应用在HTTP/1.1版本分块传输编码时
5 Transfer-Encoding 报文主体传输编码,看图
Transfer-Encoding 规定了传输报文主体时采用的编码方式。
http/1.1的传输随编码方式近对分块传输编码有效
图中的用例,首部字段Transfer-Encoding中指定的那样,有效使用分块传输编码,且分别被分红3312字节和914字节大小的分块数据
6 Upgrade 协议升级
首部字段 Upgrade用于检测http协议及其余协议是否可以使用更高的版本进行通讯,其参数值能够用来指定一个彻底不一样的通讯协议
上图用例中,首部字段 Upgrade 指定的值为 TLS/1.0。请注意此处两 个字段首部字段的对应关系,Connection 的值被指定为 Upgrade。 Upgrade 首部字段产生做用的 Upgrade 对象仅限于客户端和邻接服务 器之间。所以,使用首部字段 Upgrade 时,还须要额外指定 Connection:Upgrade。
对于附有首部字段 Upgrade 的请求,服务器可用 101 Switching Protocols 状态码做为响应返回。
7 Via 代理服务器信息
via首部字段主要是用于记录客户端和中转服务器之间路径的记录。首部字段Via不只用于记录报文转发路径还能够避免请求回环的发生,因此必须在通过的代理上附加首部字段。
8 Wraning 警告信或者错误信息
HTTP/1.1 的 Warning 首部是从 HTTP/1.0 的响应首部(Retry-After)演 变过来的。该首部一般会告知用户一些与缓存相关的问题的警告。