1

我刚刚阅读了这篇文章,在作者对 Last-Modified HTTP 标头的讨论中,他建议也发送 Cache-Control: must-revalidated。他说:

如果服务器不发送 Cache-Control: must-revalidate 怎么办?然后现代浏览器查看配置文件设置或自行决定是否发送条件请求。所以我们最好发送 Cache-Control 来确保浏览器发送有条件的请求。

所以,我的问题是,让浏览器决定有什么问题?为什么我们要盲目地覆盖浏览器的配置文件设置?我知道在某些情况下我们想强制重新验证,但是否应该总是这样做?

4

1 回答 1

0

这真的取决于你的使用情况。

我大部分时间都在“和你在一起”,因为一方面你是在踢自己的脚,因为你基本上放弃了首先避免往返的优势(缓存应该避免一轮- 如果可能会跳闸,然后尽可能避免发送内容,然后放弃并发送内容,如果您强制浏览器在从其缓存中提供服务之前有条件地检查,则作者正在删除第一个网关)。

另一方面,也许您讨厌代码中有趣的缓存失效字符串,即“main.css?v=2”,并希望浏览器询问,因此您有机会检查服务器上缓存的 ETag 并使其失效。这似乎是一个糟糕的理由,但我可以看到它对 CMS 系统或当您无法控制 URI 时很有用。

于 2011-05-12T21:31:56.783 回答