计算一个response的Freshness Lifetime(新鲜生命周期、保质期)值的规则为:
max-age: <delta-seconds>
表示client不愿意接收age超过delta-seconds秒的response。
max-stale: <delta-seconds>
如果max-stale被赋值,表示client愿意接收超过其freshness lifetime delta-seconds秒的response;如果max-stale未被赋值,则表示client愿意接收任何age的stale response。
min-fresh
no-cache
表示在没有成功验证server时,
no-store
no-transform
only-if-cached
表示client仅仅愿意接受一个stored response。server如果有缓存则返回缓存,否则返回504错误。
表示client愿意接受超过其freshness lifetime一定时间的response。如果max-stale没有被赋值,则表示client愿意接受任何陈旧(stale)的值。
must-revalidate
no-cache
在使用任何cached response之前,必须先重新验证服务器(revalidate with the server)。首先连接服务器、并比较服务器上资源的ETag和缓存中的ETag是否一样,如果一样,则返回缓存的资源;
否则,就意味着资源已经发生更新,client需要下载最新的资源并返回。
no-store
no-transform
public
private
proxy-revalidate
max-age=<delta-seconds>
该response在delta-seconds秒以后将变为陈旧的。
s-maxage=<delta-seconds>
在共享的缓存中,s-maxage会覆盖max-age指令值或者Expires header的值。