本文参考mdn Cache-Control 文档
缓存/请求指令
缓存请求和缓存响应共有指令
no-cahce,no-store,no-transform,max-age=
缓存请求指令(单独)
max-stale[=
缓存响应指令(单独)
must-revalidate,public,private,proxy-revalidate,s-maxage=
**
指令详解
可缓存性
public:响应可被任何对象(包括发请求的客户端,代理服务器等)即使是通常不可缓存的内容(如响应头没有max-age
指令或Expires
消息头,或请求方法为post)
private:默认值,只能被单个用户缓存(对应用户本地浏览器)
no-cache:可缓存,缓存前必须把缓存提交给原始服务器进行协商缓存验证
no-store:不可缓存(不使用任何缓存)
到期
max-age=
s-maxage=max-age
或Expires
,仅适用于public
指令,并被private
忽略
max-stale[=
min-fresh=
重新验证和重新加载
must-revalidate:一旦资源过期,就向原始服务器发起验证,在成功验证前,缓存不能用于该资源相应后续请求
proxy-revalidate:与must-revalidate
作用相同,但仅适用于public
指令,并被private
忽略
其他
no-transform:不得对资源进行转换或转变。Content-Encoding
、Content-Range
、Content-Type
等HTTP头不能由代理修改
only-if-cached:表示客户端只接受已缓存的响应,不向原始服务器发出是否更新的请求
注意
max-age=0
或no-cache
仍旧进行缓存。只是每次使用缓存资源前都会向服务器发起重新验证的请求,已验证资源的时效性