缓存控制机制中max-age和max-stale之间的区别是什么

时间:2015-11-20 04:11:54

标签: http cache-control

我知道这是一个简单的问题,我相信没有任何机构会将此标记为重复的问题,因为我已经搜索了所有的SO。所以我的问题是Http的Cache控制机制中max-age和max-stale之间的区别是什么,我在here中读过它,但我感觉它有点复杂,所以如果有人可以解释一下这个?这将是很好的帮助

2 个答案:

答案 0 :(得分:17)

来自RFC 7234

  

“max-age”请求指令表明客户端是      不愿意接受年龄大于的年龄的回复      指定的秒数。除非max-stale请求指令      也存在,客户不愿意接受陈旧      响应。

     

...

     

“max-stale”请求指令表明客户端是      愿意接受超出其新鲜度的回应      一生。如果为max-stale分配了一个值,那么客户端就是      愿意接受超过其新鲜寿命的回应      不超过指定的秒数。

也就是说,max-age是响应最早的,只要来自原始服务器的Cache-Control表示它仍然是新鲜的。 max-stale表示,即使已知响应已过时,只要它仅在该秒数内过时,您也会接受它。

根据Serving Stale Responses

  

缓存应该生成带有110 warn-code的Warning头字段      (见第5.5.1节)陈旧的回应。

因此,如果您指定max-stale并收到了不再全新的回复,那么Warning标题会通知您。

答案 1 :(得分:3)