首页 > 关于浏览器缓存控制的疑惑,望大神解答

关于浏览器缓存控制的疑惑,望大神解答

例如我有一张图片,原图地址:qiniu.com/demo.jpg

然后我通过百度CDN进行分发,分发地址:baiducdn.com/demo.jpg

我在本地网页中使用它:<img src="baiducdn.com/demo.jpg">

当我在chrome控制台进行调试的时候(没有禁用缓存),该图片的的头信息总是:Status Code:200 OK,完整的头信息如下:

Accept-Ranges:bytes
Access-Control-Allow-Origin:*
Access-Control-Expose-Headers:X-Log, X-Reqid
Access-Control-Max-Age:2592000
Cache-Control:max-age=31536000
CF-RAY:2ac289756cd938b9-FUO
Content-Length:9088859
Content-Transfer-Encoding:binary
Content-Type:image/gif
Date:Wed, 01 Jun 2016 12:06:00 GMT
ETag:"AFdd89ifx09ywWfdEa2rJT4R--Ax"
Expires:Thu, 01 Jun 2017 12:05:57 GMT
Last-Modified:Thu, 26 May 2016 09:36:33 GMT
Server:yunjiasu-nginx
X-Cache-Lookup:Hit From Upstream, Hit From Upstream, Hit From Upstream
X-Daa-Tunnel:hop_count=2, hop_count=1
X-Log:mc.g;FOPDC/404;FOPAGENT;IMAGE:659;FOPAGENT:675;dc.set:153;FOPDC:153;FOPDC;FOPDC;FOPG:833;io.rop:834;IO:836
X-Qiniu-Zone:0
X-Reqid:M7sAAG2y7Kgo9FMU

然后我有3个疑问,困扰我很久:

  1. 图片瞬间载入,应该是已缓存到本地,但为什么调试时Status Code是200

  2. 如果图片已经缓存到本地,那电脑处于离线状态时,图片为什么显示不出来?也就是说为什么不直接在本地加载

  3. 如果是服务器端通过ETag控制缓存,那么Status Code为什么是200而不是304?

希望大神能解惑,非常感谢


【热门文章】
【热门文章】