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

dro*_*dev 22 http cache-control

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

Joe*_*Joe 20

来自RFC 7234:

"max-age"请求指令表示客户端不愿意接受年龄大于指定秒数的响应.除非最大陈旧请求指令也存在,否则客户端不愿意接受陈旧的响应.

...

"max-stale"请求指令表示客户端愿意接受超过其新鲜度生命周期的响应.如果为max-stale分配了值,则客户端愿意接受超过其新鲜度生命周期的响应不超过指定的秒数.

也就是说,max-age是一个响应可以是最老的,只要Cache-Control从源服务器表明它仍记忆犹新.max-stale表示即使已知响应过时,只要它仅在该秒数内过时,您也会接受它.

根据服务陈旧的回应:

缓存应该在陈旧的响应中生成带有110警告代码(参见第5.5.1节)的警告头字段.

因此,如果您指定max-stale并收到了不再新鲜的回复,则Warning标题会通知您.