响应首部字段是由服务器向客户端返回响应报文中使用的字段,用于补充响应的附加信息、服务器信息以及客户端的附加要求等信息。
- Accept-Ranges
该首部字段用于告知客户端服务器是否能够处理范围请求,以指定获取服务器端某个部分的资源。
当服务器可以处理范围请求时,指定为bytes,反之则指定为none。
![Accept-Ranges](https://www.amoshuang.com/wp-content/uploads/2018/09/Accept-Range.png)
- Age
该首部字段会告知客户端,源服务器在多久前创建了响应,字段值的单位为秒。
若创建该响应的服务器是缓存服务器,则Age值指的是缓存后的响应再次发起认证到认证完成的时间值。代理创建响应时必须加上该字段。
- ETag
该首部字段可以告知客户端资源的实体标识。它是一种可以将资源以字符串形式做唯一性标识的方式。服务器会为每份资源分配对应的ETag。
当资源发生更新时,该字段值也需要更新。生成ETag值时,并没有统一的算法规则,而是仅仅由服务器来分配。
![ETag](https://www.amoshuang.com/wp-content/uploads/2018/09/ETag.png)
资源被缓存时,就会分配唯一性标识。
ETag有强弱值之分:
强ETag值无论实体发生多么细微的变化都会改变其值。
弱ETag值只用于提示资源是否相等。只有资源发生了根本的改变,产生差异时才会改变ETag值。这时,会在字段值最开始处附加W/。
- Location
使用该首部字段可以将响应接收方引导至某个与请求URI位置不同的资源。
基本上,该字段会配合3XX:Redirection的响应,提供重定向的URI。
几乎所有的浏览器在接收到包含该首部字段的响应后,都会强制性地尝试对已提示的重定向资源进行访问。
- Proxy-Authenticate
该首部字段会把代理服务器所需要的认证信息发送给客户端。
![Proxy-Authenticate](https://www.amoshuang.com/wp-content/uploads/2018/09/Proxy-Authenticate.png)
- Retry-After
该首部字段告知客户端应该在多久之后再次发送请求。主要用于配合状态码503 Service Unavailable 响应,或者3XX Redirect响应一起使用。
字段值可以指定为具体的日期,也可以是创建响应后的秒数。
- Server
该首部字段用于告知客户端当前服务器上安装的HTTP服务器应用程序的信息。不仅仅会标出服务器上的软件应用名称,还可能包括版本号和安装时启用的可选项。
![Server](https://www.amoshuang.com/wp-content/uploads/2018/09/Server.png)
- Vary
该首部字段可对缓存进行控制。源服务器会向代理服务器传达关于本地缓存使用方法的命令。
当代理服务器接收到源服务器返回的包含该字段的响应后,如果要再进行缓存,只能对请求中包含相同该字段指定的请求返回缓存。即使对相同资源发起请求,但是由于该字段指定的值不同,也必须从源服务器重新获取资源。
- WWW-Authenticate
该首部字段用于HTTP访问认证。它会告知客户端适用于访问请求URI所指定资源的认证方案(Basic还是Digest)和带参数提示的质询。状态码401Unauthorized响应中,肯定要使用该首部字段。
![WWW-Authenticate](https://www.amoshuang.com/wp-content/uploads/2018/09/WWW-Authenticate.png)