为什么有些网站强刷(ctrl F5)后还是有资源返回200(from cache)

发布于 2022-09-04 05:02:03 字数 674 浏览 35 评论 0

浏览器ctrl F5强刷之后,强缓存和协商缓存不是都应该失效了吗?所有资源统一返回200,为什么嘛我在百度首页强刷时,还是可以看到一些资源返回的200 from cache,同样google首页也是同样的情况。
这是什么原理?
这些文件放在js中加载,手写request headers?所以ctrl F5强刷时并没有改变他们的headers吗?想问下这是如何实现的。
/------------------------------------------------------/
更新 我觉得我没有把问题说清楚
**1.ctrl+F5应该是无视强缓存的
2.为什么在1成立(如果是)的条件下 ctrl F5刷新页面仍然会出现200 from cache**
强刷百度

/----------------------------------------/
更新图图片描述

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

泪冰清 2022-09-11 05:02:03

先贴一个连接,回去在写个人理解:
http://stackoverflow.com/ques...
--------------------update--------------------

好,开始写.
你既然说你已经理解了,但是浏览器的行为和你的理解又有不一致的地方,那么请你写出不一致的地方,不然别人也很难知道原因.
接下来,我就开始写我自己的理解(个人理解不一定对,只是为了和题主进行交流).
以本问题页面为例:
先贴运行环境:

clipboard.png

下面以Img类型资源为例,清空缓存后,再刷新,结果如下:

clipboard.png

可以看到,里面的所有资源都是通过网络加载的.
接下来我们来看刷新后页面的清空(不清空缓存):

clipboard.png

页面中有一个200(from memory cache)的图片,
打开他们的HTTP头,如下所示:

clipboard.png

你会发现他没有过期.同时在请求头里面没有设置max-age=0,同理查看所有304的请求,你会发现
它们的请求头里面都有max-age=0选项.
因此我个人认为请求头中的max-age是导致出现 200(from memory cache)和 304 200 这3种情况的原因.
参考链接:

https://segmentfault.com/q/10...
http://stackoverflow.com/ques...
http://stackoverflow.com/ques...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文