关于浏览器缓存的问题,求助

先说下我对下面图片的理解

clipboard.png

clipboard.png

首先,通过response headers可以得知服务器没有写入强缓存,也就是cache-control或者expires,
然后,我们看到ETag和last-Modified,说明服务器是使用的协商缓存

现在我遇到的问题是,下面的状态码200,
按照我的理解应该是,当没有设置强缓存的情况下,浏览器每次向服务器请求该资源,服务器接收到请求后,通过协商缓存判断该资源是否被更新,如果没有更新则返回304状态码,告诉浏览器直接使用缓存数据,如果资源被更新,则发送更新后资源,返回200状态码。

但是,下面的资源我很确定没有被更新,应该从缓存中取得数据并且返回304状态码,可是显示的却是200状态码,而且response中也携带了服务器返回的数据,并且还有from disk cache说明,这到底是什么回事?

阅读 3k
3 个回答

应该是html中设置了cache-control

你看到200可能是因为你想查看他是不是200导致的变成了200
有这些可能
1.你的浏览器在开发工具中设置了, 不缓存。所有http头中关于缓存的控制全部失效
2.你在浏览器里面按了F5或者刷新按钮,浏览器也会重新请求,忽略cache-control的控制
3.你把这个css文件在新的tab或者新的窗口打开了, 这样也会出现响应码是200

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