在“Cache-Control:no-cache,must-revalidate”中使用“must-revalidate”是多么必要

时间:2010-10-24 01:39:04

标签: http http-headers cache-control

我经常使用

Cache-Control: no-cache

Cache-Control: max-age=0

规范说must-revalidate适用于max-stale ...(服务器问题max-stale?)

因此,对于普通的Web服务器,Apache或带有Mongrels的Rails,我认为通常没有max-stale,所以不需要must-revalidate

1 个答案:

答案 0 :(得分:7)

must-revalidate应由服务器指定,其中不正确(而不仅仅是次优),以便客户端获得陈旧的响应。这适用于您提到的max-stale的所有请求。如果缓存暂时失去与源的连接(在这种情况下允许缓存返回带有Warning标头的陈旧条目),它也适用。话虽如此,我认为你是正确的,特别是在实践中不需要这个指令;最常见的情况是,原始设备希望让客户端缓存资源的副本(用于带宽保护),但始终在使用前对其进行验证,如:

Cache-Control: private, max-age=0, must-revalidate