我有一些不可变的图像资源,可以永久缓存。Chrome似乎尊重我的响应头,不会重新验证这些资源:
这是Chrome中这些资源的一个示例。正如您所看到的,我包括cache-control: public, max-age
、expires
、etag
和last-modified
,并且该资源是从“内存缓存”中提供的。
然而,Firefox并不遵守这些头信息,并且在每次加载时重新验证资源!每次页面加载时,我的服务器都会收到有关每个个人资料图片的请求,并返回304:
这里是一个导致304响应的请求示例: 我不明白为什么Firefox忽略缓存标头并继续向服务器请求304。我尝试了各种与缓存相关的标头,并阅读了有关可缓存内容的标准"cacheable"。我确保在devtools中启用了缓存。我也尝试关闭devtools,但是在服务器日志中仍然看到304。我发现这只会在页面刷新时发生。一个普通的刷新,而不是Shift或Shift-Command,而只是一个普通的刷新。这不是我期望的行为。
max-age=0
我不理解。我一直通过刷新(command/control+r)来访问页面,但我会尝试使用页面导航。这很有趣。关于这个问题,这里有很多答案。我会搜索一下,谢谢。 - Dmitry Minkovsky