一, Accept-Ranges
该首部字段用来告知客户端是否能够处理范围请求(* 范围请求即在请求报文中加上首部字段Range来获取服务器文件的部分资源)。
举例:
(1)可处理范围请求
Accept-Ranges:bytes
(2)不可处理范围请求
Accept-Ranges:none
二,Age
该首部字段用来告知客户端代理服务器确认缓存的时间。
举例:
Age:600
(1) 创建该响应的是代理服务器
(2)600是指缓存后的响应再次向源服务器认证到认证完成的时间,单位是秒
(3)代理创建响应时必须加上首部字段Age
三,ETag
该首部字段用来标识服务器端的资源。通俗来讲就是通过ETag值来指定服务器端的资源。
举例:
ETag:uasgi-1234(字符串)
(1)它是一种可以用字符串来标识资源的一种方式,服务器会为每份资源分配一个ETag值。
(2)资源发生更新时,ETag值会发生改变。
(3)中文版和英文版的资源的URI相同,ETag值却不相同。
ETag分为强ETag值和弱ETag值
强ETag值,不论发生多么细微的变化都会改变其值。
弱ETag值,用来提示资源是否相同,只有资源发生了根本改变才会改变ETag值。这时会在最开始处附加W/
ETag:W/“usagi-1234”
四,Location
该首部字段可以将响应接收方(客户端,如浏览器)引导至某个与请求URI位置不同的资源,当请求的资源位置改变时会返回该响应。
举例:
请求报文:
GET /sample.htm
响应报文:
302 Found
Location:https://www.usagidesign.jp/sample.htm
几乎所有的浏览器在接收到含有Location的首部字段后都会按照重定向的位置进行访问。
五,Proxy-Authenticate
该首部字段会把代理服务器要求的认证信息发送给客户端。
举例:
请求报文: 请求报文:
GET /sample.htm GET /sample.htm
响应报文: 响应报文:
401 Unauthorized
Proxy-Authenticate:Basic realm=“Usagidesign Auth” WWW-Authenticate:...
请求报文: 请求报文:
Proxy-Authorization:...(认证信息) Authorization:...(认证信息)
(1)左边是代理服务器与客户端之间的认证过程,右边是服务器与客户端之间的认证过程。
(2)Basic是认证方案,后面是带参数的质询。
(3)客户端在发送完认证信息后,服务器会返回响应。
六,Retry-After
该首部字段用来告知客户端在多久之后再次发送请求。
举例:
Retry-After:120
或
Retry-After:Wed,04 Jul 2012 06:34:24 GMT
(1)当服务器没法立刻返回响应时便返回Retry-After
(2)第一个是指过2分钟后再次发送请求
(3)也可以指定具体的时间,如第二个。
七, Sever
该首部字段用来告知客户端服务器上安装的HTTP服务器应用程序的信息,包括名称,版本号和安装时启用的可选项。
举例:
Sever:Apache/2.2.17 (Unix)
八,Vary
该首部字段用来控制管理缓存。
举例:
请求报文:
GET /sample.html
Accept-Language:en-us
响应报文:
Vary:Accept-Language
(1)服务器响应报文指定Vary首部字段的值为Accept-Language
(2)代理服务器在接收响应时进行缓存
(3)若客户端在次请求相同资源,并且仍然请求英文版的资源时(也就是Accept-Language的字段值相同时),返回缓存
(4)如果请求的不是英文版资源,则从服务器返回响应。