我的图像存储在azure blob存储中,并使用我的azure CDN通过我的Web应用程序引用。但是,所有图像都返回304响应头。理想情况下,我不希望浏览器返回CDN以检查每个请求的有效性,而不是浏览器始终使用缓存。 - 好在图像缓存的生命周期。
由于我对缓存的了解有限,我理解缓存使用ETag值来比较图像的版本是否在请求时是相同的。在这种情况下,CDN返回304响应。但由于CacheControl标头设置为public,max-age = 2592000,我希望浏览器使用图像的缓存副本。我有另一个CDN设置,它有一个托管服务端点,它返回200响应,因为我删除了ETag值。
对此的任何帮助将不胜感激。
答案 0 :(得分:1)
当ETag
“触发”304
响应=>时浏览器已向服务器发送If-None-Match
验证请求。这通常在max-age
过去之后完成。你可以在这里找到一个很好的描述:
https://stackoverflow.com/a/500103/2550808
值得一提的是,Firefox浏览器设置应设置为默认值:转到about:config
页面并检查以下设置:http://kb.mozillazine.org/Browser.cache.check_doc_frequency
回到你的问题,服务器返回浏览器的Cache-Control标题可能有问题。在我谦虚的个人经历中,我没有明确遇到标题public
版本,更可能就是这样:
Cache-Control: max-age=3600, must-revalidate
无论如何,这里有关于缓存的标题的非常好的描述:
https://www.mnot.net/cache_docs/
或者,可能还有其他原因需要不断重新验证: