浏览器缓存总结

浏览器缓存分为强缓存协商缓存。当客户端请求某个资源时,获取缓存的流程如下:

1.先根据这个资源的一些http header 判断它是否命中强缓存,先检查Cache-Control,如果命中,则直接从本地获取缓存资源,不会发请求到服务器;

2.当强缓存没有命中时,客户端会发送请求到服务器,服务器通过另一些request header验证这个资源是否命中协商缓存,称为http再验证,如果命中,服务器将请求返回,但不返回资源,而是返回304告诉客户端直接从缓存中获取,客户端收到返回后就会从缓存中获取资源;(服务器通过请求头中的If-Modified-Since和If-None-Match字段检查资源是否更新)

3.强缓存和协商缓存共同之处在于,如果命中缓存,服务器不会返回资源;区别是,强缓存不对发送请求到服务器,但协商缓存会;

4.当协商缓存没有命中时,服务器就会将资源发送回客户端

5.当ctrl+f5 强制刷新页面,直接从服务端加载,跳过强缓存和协商缓存;

6.当f5刷新网页时,会跳过强缓存,但是会检查协商缓存;

强缓存

  • Expires(该字段是http1.0时规范,值为一个绝对时间的GMT格式的时间字符串,代表缓存资源的过期时间)
  • Cache-Control:max-age(该字段是http1.0的规范,强缓存利用max-age值判断缓存资源的最大生命周期,它的值单位为秒)

协商缓存 

  • Last-Modified(值为资源最后更新时间,随服务器response返回,即使文件改回去,日期也会变化)
  • If-Modified-Since(通过比较两个时间判断资源再两次请求期间是否修改,如果没有修改,则命中协商缓存)
  • ETag(表示资源内容的唯一标识,随服务器response返回,仅根据文件内容是否变化判断)
  • If-None-Match(服务器通过比较请求头部的If-None-Match与当前资源的ETag是否一致来判断资源是否在两次请求之间有过修改,如果没有修改,则命中协商缓存)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值