chenxiaochun/blog

图解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"