关注本文作者公众号
获取最新福利
微信公众号

200 OK (from cache) 与 304 Not Modified

时间: 06/01/2017作者: ll浏览量: 469

为什么有的缓存是 200 OK (from cache),有的缓存是 304 Not Modified 呢?很简单,看运维是否移除了 Entity Tag。移除了,就总是 200 OK (from cache)。没有移除,就两者交替出现。

从知乎上看到这个问题:“阿里云存储如何让浏览器始终以200 (from cache)缓存图片?”,提问者强调 200 OK (from cache) 和 304 Not Modified 的区别

其实, 200 OK (from cache) 是浏览器没有跟服务器确认,直接用了浏览器缓存;而 304 Not Modified 是浏览器和服务器多确认了一次缓存有效性,再用的缓存。

它们都是在设置了缓存的情况下触发的。

那么,两者触发的时机有什么区别呢?200 OK (from cache) 是直接点击链接访问,输入网址按回车访问也能触发;而 304 Not Modified 是刷新页面时触发,或是设置了长缓存、但 Entity Tags 没有移除时触发。这是经过查阅资料得出的结论。博主实际测试了一下,结论与之相符: >直接访问有缓存的网站都触发 200 OK (from cache)图1 – 直接访问有缓存的网站都触发 200 OK (from cache)

>刷新浏览器会触发 304 Not Modified图2 – 刷新浏览器则会触发 304 Not Modified

>同一域名下,没有 Entity Tag 的资源直接访问,是 200 OK (from cache) 的结果图3 – 同一域名下,没有 Entity Tag 的资源直接访问,是 200 OK (from cache) 的结果

>同一域名下,有 Entity Tag ,直接访问就会触发 304 Not Modified图4 – 同一域名下,有 Entity Tag ,直接访问就会触发 304 Not Modified

现在一般都会设置长时间的缓存,正确设置方式参考这两篇笔记:

关注下面的标签,发现更多相似的文章

ll

前端工程师
自我介绍 专注web前后端架构,极客教程网(https://www.geekjc.com)-创建者。
极客教程网
——一个你值得来的网站
编程笔记:学习分享,与君共勉!
小书本:系统完整的学习!
在线工具:极客工具,在线工具,在线运行
前端导航:前端导航,前端资源聚合平台
零花钱:简单点点手机,做做任务赚点零花钱
微信公众号
极客教程(geekjc)
QQ群:
495489065

Copyright © 2019 - ~ All Rights Reserved. Made By ll 备案号:粤ICP备15001588号-4