我们有几个文件通过HTTP提供服务,并且会随时更改。哪些是可以更改内容的最佳缓存相关HTTP标头?
哪些是与缓存相关的HTTP标头,我们应该在HTTP响应中返回以优化浏览器加载速度,同时强制浏览器验证它是否具有文件的最新版本?
我们已经设置了过期日期的“过期”标题(似乎此时已达成共识)。
但后来有人建议设置这个头:
Cache-Control: no-cache, no-store, must-revalidate
但与此头的问题是,它可以防止浏览器保持文件的本地副本,因此文件被下载每次,甚至如果它没有改变,用200响应代码。
如果我只是用:
Cache-Control: no-cache
然后,浏览器(至少火狐14和Chrome 20)保留一个本地副本,发送If-Modified-Since
和If-None-Match
头,服务器返回一个304码和文件内容没有下载。 这是可随时更改这些文件的最佳行为。
问题是,我不知道设置“no-cache”是否足以强制所有浏览器(包括旧的,但仍然使用的版本)和代理服务器重新验证其本地缓存副本与服务器。
最后,Pragma: no-cache
头怎么样?它是否也应该包含在HTTP响应中呢?
如果您有答案,您应该自己写答案并将其标记为答案,而不是在问题中以粗体添加陈述。 – 2016-03-27 01:50:51
@AlexisWilke大胆的陈述不是我的问题的答案,这只是我想强调的一点。 – 2016-03-29 08:56:52