我知道这是一个简单的问题,我相信没有任何机构会将此标记为重复的问题,因为我已经搜索了所有的SO。所以我的问题是Http的Cache控制机制中max-age和max-stale之间的区别是什么,我在here中读过它,但我感觉它有点复杂,所以如果有人可以解释一下这个?这将是很好的帮助
答案 0 :(得分:17)
来自RFC 7234:
“max-age”请求指令表明客户端是 不愿意接受年龄大于的年龄的回复 指定的秒数。除非max-stale请求指令 也存在,客户不愿意接受陈旧 响应。
...
“max-stale”请求指令表明客户端是 愿意接受超出其新鲜度的回应 一生。如果为max-stale分配了一个值,那么客户端就是 愿意接受超过其新鲜寿命的回应 不超过指定的秒数。
也就是说,max-age
是响应最早的,只要来自原始服务器的Cache-Control
表示它仍然是新鲜的。 max-stale
表示,即使已知响应已过时,只要它仅在该秒数内过时,您也会接受它。
缓存应该生成带有110 warn-code的Warning头字段 (见第5.5.1节)陈旧的回应。
因此,如果您指定max-stale
并收到了不再全新的回复,那么Warning
标题会通知您。
答案 1 :(得分:3)