首页 > 解决方案 > 为什么我得到 200(来自磁盘缓存)而不是 304 Not Modified?

问题描述

我正在通过 HTTP 从 Chrome 请求一个 css 文件(版本 93.0.4577.63(官方构建)(64 位))。初始请求如下所示:

在此处输入图像描述

如您所见,它Cache-Control: no-cache在请求中。

这是否意味着它首先必须与服务器检查其 css 文件的版本是否是最新的?

在这种情况下,它应该304 Not Modified在下一个请求中得到一个(假设文件没有被修改)?

这是我刷新页面时的请求/响应:

为什么我得到 a200 (from disk cache)而不是 a 304 Not Modified

在此处输入图像描述

问题是该网站的一些用户正在获取过期版本的 css 文件。

我怀疑这是因为缓存版本在被服务器重新验证之前被返回,这是我认为no-cache应该做的。

更新:

我不知道为什么,但是当我再次刷新时,请求中的标头更少:在此处输入图像描述

我没有选中禁用缓存按钮

标签: google-chromehttpbrowser-cachecache-control

解决方案


您是否在 devtools 中禁用了缓存?

在 Firefox 中,只有当缓存没有被禁用时,我才会得到 304。


推荐阅读