【问题标题】:Is it a good idea to always send Cache-Control: must-revalidate along with Last-Modified总是发送 Cache-Control: must-revalidate 和 Last-Modified 是个好主意吗
【发布时间】:2011-07-09 02:02:06
【问题描述】:
我刚刚阅读了这个article,在作者对 Last-Modified HTTP 标头的讨论中,他建议也发送 Cache-Control: must-revalidated。他说:
如果服务器不发送怎么办
缓存控制:必须重新验证?然后
现代浏览器看个人资料
设置或自行决定是否
发送有条件的请求。所以我们
最好发送 Cache-Control 来制作
确保浏览器发送有条件的
请求。
所以,我的问题是,让浏览器决定有什么问题?为什么我们要盲目地覆盖浏览器的配置文件设置?我了解在某些情况下我们希望强制重新验证,但是否应该始终这样做?
【问题讨论】:
标签:
http
caching
header
last-modified
【解决方案1】:
这真的取决于你的使用情况。
我大部分时间都在“与你同在”,因为一方面你是在踢自己的脚,因为你基本上放弃了首先避免往返的优势(缓存应该尽可能避免往返,然后尽可能避免发送内容,然后放弃并发送内容,如果您强制浏览器在从其缓存中进行服务之前有条件地检查,则作者正在删除第一个网关。
另一方面,也许您讨厌代码中有趣的缓存失效字符串,即“main.css?v=2”,并希望浏览器询问,因此您有机会检查服务器上缓存的 ETag 并无效。这似乎是一个糟糕的理由,但我可以看到它对 CMS 系统或当您无法控制 URI 时很有用。