缓存原理总结

详细见:https://www.cnblogs.com/moxiaotao/p/9670109.html

1.强缓存

原理:浏览器首次发出请求服务端会在response header加上Expires的header/Cache-Control。浏览器会将这个资源连同所有response header一起缓存下来(所以缓存命中的请求返回的header并不是来自服务器,而是来自之前缓存的header)。
再次请求这个资源时,会从缓存中找,如果是expires,再次请求的时间不超过expires的时间就能命中。如果是cache-control,第一次请求的时间+cache-control的有效时间,从而推算出缓存过期时间,此时再次请求的时间不超过缓存过期的时间就能命中,否则不能。

体现为:状态码200,F12里network下的size字段值对应为from cache。

2.协商缓存

当浏览器对某个资源的请求没有命中强缓存,就会发一个请求到服务器,验证协商缓存是否命中。

体现为:如果协商缓存命中,请求响应返回的http状态为304并且会显示一个Not Modified的字符串。

1)浏览器第一次跟服务器请求一个资源,服务器在返回这个资源的同时,在respone的header加上Last-Modified的header
2)浏览器再次跟服务器请求这个资源时,在request的header上加上If-Modified-Since的header。
3)服务器再次收到资源请求时,根据浏览器传过来If-Modified-Since和资源在服务器上的最后修改时间判断资源是否有变化,如果没有变化则返回304 Not Modified,但是不会返回资源内容;如果有变化,就正常返回资源内容。当服务器返回304 Not Modified的响应时,response header中不会再添加Last-Modified的header,因为既然资源没有变化,那么Last-Modified也就不会改变。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值