你必须知道的常用的报文首部字段

HTTP报文首部

你必须知道的常用的报文首部字段

文章插图
 
HTTP协议的请求和响应报文中必定包含HTTP首部 。首部内容为客户端和服务器分别处理请求和响应提供所需要的信息 。对于客户端用户来说,这些信息中的大部分内容都无须亲自查看 。
报文首部由几个字段构成 。
你必须知道的常用的报文首部字段

文章插图
 
下面的示例是访问http://hackr.jp时,请求报文的首部信息 。
你必须知道的常用的报文首部字段

文章插图
 

你必须知道的常用的报文首部字段

文章插图
 
HTTP响应报文
在响应中,HTTP报文由HTTP版本、状态码(数字和原因短语)、HTTP首部字段3部分构成 。
你必须知道的常用的报文首部字段

文章插图
 
以下示例是之前请求访问http://hackr.jp/时,返回的响应报文的首部信息 。
你必须知道的常用的报文首部字段

文章插图
 
在报文众多的字段当中,HTTP首部字段包含的信息最为丰富 。首部字段同时存在于请求和响应报文内,并涵盖HTTP报文相关的内容信息 。
因HTTP版本或扩展规范的变化,首部字段可支持的字段内容略有不同 。本书主要涉及HTTP/1.1及常用的首部字段 。
HTTP首部字段
HTTP首部字段传递重要信息
HTTP首部字段是构成HTTP报文的要素之一 。在客户端与服务器之间以HTTP协议进行通信的过程中,无论是请求还是响应都会使用首部字段,它能起到传递额外重要信息的作用 。
使用首部字段是为了给浏览器和服务器提供报文主体大小、所使用的语言、认证信息等内容 。
你必须知道的常用的报文首部字段

文章插图
 
HTTP首部字段结构
HTTP首部字段是由首部字段名和字段值构成的,中间用冒号“:”分隔 。
你必须知道的常用的报文首部字段

文章插图
 
例如,在HTTP首部中以Content-Type这个字段来表示报文主体的对象类型 。
你必须知道的常用的报文首部字段

文章插图
 
就以上述示例来看,首部字段名为Content-Type,字符串text/html是字段值 。
另外,字段值对应单个HTTP首部字段可以有多个值
你必须知道的常用的报文首部字段

文章插图
 

你必须知道的常用的报文首部字段

文章插图
 
4种HTTP首部字段类型
HTTP首部字段根据实际用途被分为以下4种类型 。
你必须知道的常用的报文首部字段

文章插图
 

你必须知道的常用的报文首部字段

文章插图
 
HTTP/1.1 首部字段一览
HTTP/1.1规范定义了如下47种首部字段 。
你必须知道的常用的报文首部字段

文章插图
 

你必须知道的常用的报文首部字段

文章插图
 

你必须知道的常用的报文首部字段

文章插图
 

你必须知道的常用的报文首部字段

文章插图
 
非HTTP/1.1首部字段
在HTTP协议通信交互中使用到的首部字段,不限于RFC2616中定义的47种首部字段 。还有Cookie、Set-Cookie和Content-Disposition等在其他RFC中定义的首部字段,它们的使用频率也很高 。
这些非正式的首部字段统一归纳在RFC4229 HTTP Header Field Registrations中 。
End-to-end首部和Hop-by-hop首部
HTTP首部字段将定义成缓存代理和非缓存代理的行为,分成2种类型 。
你必须知道的常用的报文首部字段

文章插图
 
下面列举了HTTP/1.1中的逐跳首部字段 。除这8个首部字段之外,其他所有字段都属于端到端首部 。
你必须知道的常用的报文首部字段

文章插图
 
HTTP/1.1 通用首部字段
通用首部字段是指,请求报文和响应报文双方都会使用的首部 。
Cache-Control
通过指定首部字段Cache-Control的指令,就能操作缓存的工作机制 。
你必须知道的常用的报文首部字段

文章插图
 
指令的参数是可选的,多个指令之间通过“,”分隔 。首部字段Cache-Control的指令可用于请求及响应时 。


推荐阅读