7

我经常使用

Cache-Control: no-cache

或者

Cache-Control: max-age=0

规范说must-revalidate是为了max-stale......(服务器问题max-stale?)

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

4

1 回答 1

7

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

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

于 2010-12-26T13:40:59.757 回答