浏览器缓存开启之后,请求之前访问过的资源返回的状态码仍然是200,是什么情况,如何解释?

我已经将浏览器缓存开启,在打开第一个页面的时候是200 ok点击页面上的测试超链接,跳转到第二个页面,刚请求的资源,都还是200 ok只有当我刷新当前页面时,才会变成304。

请输入图片描述
请输入图片描述
请输入图片描述

查看请求,都提示(from cache)(为什么没有请求的具体头信息呢?)

请输入图片描述

我的服务器上做了缓存配置的呀:

请输入图片描述

阅读 8.7k
1 个回答

因为你用的是 Google Chrome。UI 中的文字描述不清,还没中文翻译。强烈推荐使用 Firebug 再查看一次。注意先确认「网络」面板选项(点那个小箭头)里的「显示 BFCache 响应」已经勾上。

然后查看,你会发现有两种来自缓存的请求:

  1. 灰色的 304 请求。这是服务器看到请求了,说「火狐你好,这个资源你已经有啦!」
  2. 灰色条纹背景的请求。这是根本没有向服务器发起请求,直接从 cache 里取得的。

Firebug 中的缓存显示截图

没有向服务器发送请求的当前没有请求头信息了。Firebug 里是可以看到缓存的请求头信息的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进