通用首部:Cache-Control

缓存请求指令
no-cache:强制向源服务器再次验证,防止从缓存中返回过期的资源

no-store:不缓存请求或响应的任何内容,暗示请求或响应中包含机密信息

max-age(必须):响应的最大Age值,如果判定缓存资源的缓存时间数值比指定时间的数值更小,那么客户端就接收缓存的资源。另外,当指定max-age值为0,那么缓存服务器通常需要将请求转发给源服务器

max-stale:接收已过期的响应,指示缓存资源,即使过期也照收

min-fresh(必须):期望在指定时间内的响应仍有效,要求缓存服务器返回至少还未过指定时间的缓存资源

no-transform:代理不可更改媒体类型,表示客户端仅在缓存服务器本地缓存目标资源的情况下才会要求其返回。换言之,该指令要求缓存服务器不重新加载响应,也不会再次确认资源有效性。若发生请求缓存服务器的本地缓存无响应,则返回状态码504Gateway Timeout

only-if-cached:从缓存获取资源

cache-extension:新指令标记

缓存响应指令
public:可向任意方提供响应的缓存,明确表示其他用户也利用缓存

private:仅向特定用户返回响应,响应只以特定的用户作为对象

no-cache:缓存前必须先确认其有效性

no-store:不缓存请求或响应的任何内容

no-transform:代理不可更改媒体类型,指令规定无论是在请求还是响应中缓存都不能改变实体主体的媒体类型,这样做可防止缓存或代理压缩图片等类似操作

must-revalidate:可缓存但必须再向源服务器进行确认,代理会向源服务器再次验证即将返回的响应缓存目前是否仍然有效,若代理无法连通源服务器再次获取有效资源的话,缓存必须给客户端一条504(Gateway Timeout)状态码,另外使用must-revalidate指令会忽略请求的max-stale指令(即使已经在首部使用了max-stale,也不会再有效果)

proxy-revalidate:要求中间缓存服务器对缓存的响应有效性再进行确认,要求所有的缓存服务器在接收有该指令的请求返回响应之前,必须再次验证缓存的有效性

max-age(必须):响应的最大Age值,缓存服务器将不对资源的有效性再作确认,而max-age数值代表资源保存为缓存的最长时间,应用HTTP/1.1版本的缓存服务器遇到同时存在Expires首部字段的情况时,会优先处理max-age指令,而忽略掉Expires首部字段。而HTTP/1.0版本的缓存服务器的情况却相反,max-age指令会被忽略掉

s-maxage(必须):公共缓存服务器响应的最大Age值,只适用于供多位用户使用的公共缓存服务器,也就是说对于向同一用户重复返回响应的服务器来说,这个指令没有任何作用,当使用s-maxage指令后,则直接忽略对Expires首部字段及max-age指令的处理

cache-extension:新指令标记


猜你喜欢

转载自xiangjie88.iteye.com/blog/2191208