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