HTTP/1.1 首部字段一览
HTTP/1.1 规范定义了如下 47 种首部字段。
6-2:请求首部字段
除此之外还有很多经常使用的在RFC中定义的首部字段如:Cookie,Set-Cookie和Content-Disposition.这些都被归纳到RFC4229 HTTP Header Field Registrations
End-to-end 首部和 Hop-by-hop首部
端到端(End-to-end):分类到这个类的首部一定会被转发给对应的最终接收目标,且必须保存在由缓存产生的响应。
逐跳首部(Hop-By-Hop):只对单次转发有效,会因为通过缓存或代理不再转发。HTTP/1.1后的版本,如果要使用这个,要提供Connection首部字段。有这八个首字段属于:
Connection Keep-Alive Proxy-Authenticate Proxy-Authorization
Trailer TE Transfer-Encoding Upgrade …
字段详解
通用首部字段
这意味着能分别在请求报文和响应报文中使用。
Cache-Control
指令的参数是可选的, 多个指令之间通过“,”分隔。 首部字段 CacheControl 的指令可用于请求及响应时。
如:
Cache-Control: private, max-age=0, no-cache
no-cache:
使用 no-cache 指令的目的是为了防止从缓存中返回过期的资源。 客户端发送的请求中如果包含 no-cache 指令,则表示客户端将不会接 收缓存过的响应。于是,“中间”的缓存服务器必须把客户端请求转发 给源服务器。
如果服务器返回的响应中包含 no-cache 指令,那么缓存服务器不能对 资源进行缓存。源服务器以后也将不再对缓存服务器请求中提出的资 源有效性进行确认,且禁止其对响应资源进行缓存操作。
max-age:
当客户端发送的请求中包含 max-age 指令时,如果判定缓存资源的缓 存时间数值比指定时间的数值更小,那么客户端就接收缓存的资源。 另外,当指定 max-age 值为 0,那么缓存服务器通常需要将请求转发 给源服务器。
Connection
控制不再转发给代理的首部字段
管理持久连接
如:Connection: Keep-Alive
Via
使用首部字段 Via 是为了追踪客户端与服务器之间的请求和响应报文 的传输路径。
报文经过代理或网关时,会先在首部字段 Via 中附加该服务器的信 息,然后再进行转发。这个做法和 traceroute 及电子邮件的 Received 首部的工作机制很类似。
首部字段 Via 不仅用于追踪报文的转发,还可避免请求回环的发生。 所以必须在经过代理时附加该首部字段内容。