HTTP首部

1、HTTP报文首部

2、HTTP首部字段

通用首部字段:请求报文和响应报文都会使用的首部

 Cache-Control指令一览:

缓存请求指令:

缓存响应指令:

Cache-Control:public :表明其他用户也可以利用缓存

Cache-Control:private:与public行为相反

Cache-Control:no-cache:目的是防止从缓存中返回过期的资源。客户端发送的请求如果包含no-cache,表示客户端不会接收缓存过的响应,于是中间的缓存服务器必须把客户端请求转发给源服务器,如果服务器返回的响应包含该字段,表示缓存服务器不能对资源进行缓存。若对no-cache字段名具体指定参数值,那么客户端在接收到这个被指定参数值的首部字段对应的响应报文后,就不能使用缓存。换言之,无参数值的首部字段可以使用缓存。只能在响应指令中指定该参数。

Cache-Control:no-store:暗示请求或响应包含机密信息,不能再本地存储请求或响应的任一部分。

注:事实上no-cache代表不缓存过期的资源,缓存会向源服务器进行有效期确认后处理资源,no-store才是真正地不进行缓存。

Cache-Control:s-maxage/max-age:指定缓存期限和认证的指令。s-maxage和max-age功能相同,只是s-maxage指令只适用于供多位用户使用的公共缓存服务器。当客户端请求中包含max-age指令时,如果判定缓存资源的缓存时间数值比指定时间的数值更小,那么客户端就接收缓存的资源。服务器响应中包含max-age指令时,缓存服务器将不对资源的有效性再做确认,max-age数值代表资源保存为缓存的最长时间。

Cache-Control:min-fresh:要求缓存服务器返回至少还未过指定时间的缓存资源。

Cache-Control:max-stale:指示缓存资源即使过期也照常接收。如果指令为指定参数值,则缓存始终可以被接收,如果指定了具体数值,即使过期,只要在max-stale指定的时间内,缓存仍旧会被客户端接收。

Cache-Control:only-if-cached

Cache-Control:must-revalidate:代理会向源服务器再次验证即将返回的响应缓存目前是否仍然有效。

Cache-Control:proxy-revalidate:

Cache-Control:no-transform:

 

请求首部字段:请求报文使用的首部

响应首部字段:响应报文使用的首部

实体首部字段:请求报文和响应报文的实体部分使用的首部

逐跳首部(Hop-by-hop Header):分在此类别中的首部只对单次转发有效,会因通过缓存或代理而不再转发。HTTP/1.1和之后版本中,如果要使用hop-by-hop首部,需提供Connection首部字段。逐跳首部字段包括如下字段:

端到端首部(End-to-end Header):此类别中的首部会转发给请求/响应对应的最终接收目标,且必须保存在由缓存生成的响应中,另外规定它必须被转发,除了逐跳首部字段,其他都是端到端首部字段

 本章剩余内容看书吧,知识点很零碎。

原文地址:https://www.cnblogs.com/mingyao123/p/8260842.html