我对这个标头感到困惑,我已经阅读Cache-Control:must-revalidate
了在提供缓存项目之前验证所有请求与源的义务,但只是陈旧的?还是全部不管是陈旧的还是新鲜的?我在不同的地方读过这两本书。
有什么区别Cache-Control:no-cache
?因为这些标题看起来和我一样。
更新1:我从一本书中读到了这个:
Cache-Control: must-revalidate
响应标头告诉缓存绕过新鲜度计算机制并在每次访问时重新验证:
@Peter O. 指出了 RFC 所说的内容。所以那本旧书是错的。
更新 2:在本教程中:http ://www.mnot.net/cache_docs/
no-cache
— 强制缓存每次在释放缓存副本之前将请求提交给源服务器进行验证。这对于确保尊重身份验证(与 public 结合)或保持严格的新鲜度而不牺牲缓存的所有好处很有用。
must-revalidate
— 告诉缓存它们必须遵守您提供给它们的有关表示的任何新鲜信息。HTTP 允许缓存在特殊条件下提供陈旧的表示;通过指定此标头,您是在告诉缓存您希望它严格遵守您的规则。