图解HTTP之响应首部字段
chenxiaochun opened this issue · 0 comments
响应首部字段
响应首部字段是由服务器端向客户端返回响应报文中所使用的字段,用过补充响应的附加信息、服务器信息,以及对客户端的附加要求等信息。
一、Accept-Ranges
此首部字段用于告知客户端服务器是否能处理范围请求。如果能处理返回的值为bytes,否则返回的值为none。
Accept-Ranges: bytes
二、Age
此首部字段用于告知客户端,服务器在多久前创建了响应,单位为秒。若是缓存服务器,则是指缓存后的响应再次发起认证到认证完成的时间值。代理创建响应时必须带上此首部字段。
Age: 600
三、ETag
它是一种可将资源以字符串形式做唯一标识的方式。服务器会为每份资源分配对应的ETag值。资源更新时,ETag值也会更新。生成ETag值的算法由服务器决定。ETag值分为两种:
- 强ETag值
不认实体发生多么细微的变化都会改变其值。
ETag: "usagi-1234"
- 弱ETag值
只用于提示资源是否相同,只有资源发生了根本改变,产生差异时才会改变ETag值,而且在字符值最开始处附加W/。
ETag: W/"usagi-1234"
四、Location
几乎所有的浏览器在接收到包含首部字段Location的响应后,都会强制性地尝试进行资源重定向。
Location: http://www.jd.com
五、Proxy-Authenticate
把由代理服务器所要求的认证信息发送给客户端。
Proxy-Authenticate: Basic realm="Usagidesign Auth"
六、Retry-After
此首部字段告知客户端应该在多久之后再次发送请求。主要是配合状态码503 Service Unavailable或者3xx Redirect。可以指定具体的时间值,也可以是创建响应后的秒数。
Retry-After: 120
七、Server
此首部字段告知客户端当前服务器上安装的HTTP服务器应用程序的信息。不仅仅有应用程序的名称,还有可能包括版本号和安装时启用的可选项。
Server: Apache/2.2.17 (Unix)
Server: Apache/2.2.6 (Unix) PHP/5.2.5
八、Vary
此首部字段可对缓存进行控制。从代理服务器收到源服务器返回包含Vary的响应之后,若要再进行缓存,仅对请求中含有相同Vary字段值的请求返回缓存。即使请求相同的资源,但是Vary指定的首部字段值不相同,也要必须从源服务器重新获取资源。
Vary: Accept-Language
九、WWW-Authenticate
此首部字段用于HTTP访问认证。
WWW-Authenticate: Basic realm="Usagidesign Auth"