加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

浏览器缓存看这一篇就够了

发布时间:2019-04-02 18:02:39 所属栏目:建站 来源:前端小将
导读:浏览器缓存作为性能优化的重要一环,对于前端而言,重要性不言而喻。以前总是一知半解的,所以这次好好整理总结了一下。 1、缓存机制 首先我们来总体感知一下它的匹配流程,如下: 浏览器发送请求前,根据请求头的expires和cache-control判断是否命中(包

关闭标签页,再此打开https://github.com/xiangxingchen/blog时

F5刷新时

简单的对比一下

3、协商缓存

协商缓存就是强制缓存失效后,浏览器携带缓存标识向服务器发起请求,由服务器根据缓存标识决定是否使用缓存的过程,主要有以下两种情况:

  • 协商缓存生效,返回304和Not Modified
  • 协商缓存失效,返回200和请求结果

3.1、Last-Modified和If-Modified-Since

浏览器首先发送一个请求,让服务端在response header中返回请求的资源上次更新时间,就是last-modified,浏览器会缓存下这个时间。

然后浏览器再下次请求中,request header中带上if-modified-since:[保存的last-modified的值]。根据浏览器发送的修改时间和服务端的修改时间进行比对,一致的话代表资源没有改变,服务端返回正文为空的响应,让浏览器中缓存中读取资源,这就大大减小了请求的消耗。

由于last-modified依赖的是保存的绝对时间,还是会出现误差的情况:

保存的时间是以秒为单位的,1秒内多次修改是无法捕捉到的;

各机器读取到的时间不一致,就有出现误差的可能性。为了改善这个问题,提出了使用etag。

3.2、ETag和If-None-Match

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读