美文网首页
2020-09-30(浏览器缓存)

2020-09-30(浏览器缓存)

作者: 宇宙区长李小无 | 来源:发表于2020-09-30 17:27 被阅读0次

今天比较懒,一图胜万言


自己总结下吧:

缓存位置:

  • service-worker(注册,监听,拦截请求,强制https,自由缓存)
  • memory-cache(内存中,大小和时间限制较大,关闭tab就消失,但是速度快)
  • disk-cache(硬盘中,大小和时间有保障,但是速度稍慢)

强缓存:

  • expires字段
    http1.0的产物,相对来说比较落后了,但是也常作为一种兼容性的写法,它规定了资源到期的时间,容易受系统本地时间的影响而命中;
  • cache-control
    强缓存中最重要的属性,有多个值可以设定,常用的比如
    • max-age=300,代表接下来的300秒内,再次访问该资源,就会命中强缓存;
    • no-cache,该值表示每次请求都会进行协商缓存,防止服务器资源内容和缓存中的不一致;
    • no-store,完全不缓存,每次都会走服务器。

协商缓存:(headers中last-modified和E-tag)

浏览器带着缓存标识向服务器发送请求,会有两种状态:

  • 304命中缓存
  • 200正常响应,存入缓存

服务器如何判断资源是否发生变化了呢?

  • last-modifiedif-modified-since:
    第一次请求时,服务端会在response header中添加 Last-Modified(上次修改该资源的时间),返回给客户端,浏览器将这个resHeader进行缓存,缓存到last-modified记录中,下次请求的时候,会识别到有这个记录,将该记录的上次修改时间带上,传给服务端,服务端再进行判断,文件是否发生变化,从而响应相应的内容。
  • E-tagif-none-match
    上面的方式有两种弊端:
    1、单位只能以秒计,有误差;
    2、如果文件只是打开,没有修改过,也会识别出不一致,资源浪费。

E-tag相当于获取到了文件的hash值,这跟文件内容就完全同步了,精度来说,优于last-modified,但是效率稍逊。

用户行为影响:

  • 输入地址请求页面
    浏览器会查找disk-cache中是否有缓存,没有则发送网络请求;
  • 不关闭tab页面,直接刷新
    此时还可以使用memory-cache,优化匹配memory,然后disk
  • 当用户强制刷新会发生什么?(ctrl+f5)
    这时所有请求的强缓存都换成了cache-control:no-cache,为了兼容还会带上(pragma: no-cache),返回200和最新内容。

终于放假了,8天假期,有点开心。

相关文章

  • 2020-09-30(浏览器缓存)

    今天比较懒,一图胜万言 自己总结下吧: 缓存位置: service-worker(注册,监听,拦截请求,强制htt...

  • 浏览器缓存(http缓存)

    浏览器缓存有两种:强制缓存和协商缓存 浏览器缓存机制 浏览器发送请求,会先从浏览器缓存中查找【请求结果】和【缓存标...

  • 缓存、cookie、token、session、localSto

    一、缓存分类 服务器端缓存(CDN缓存) 客户端缓存(浏览器缓存); 二、浏览器缓存 强缓存:浏览器在加载资源时,...

  • 协商缓存和强缓存

    浏览器缓存主要有两类:缓存协商和彻底缓存,也有称之为协商缓存和强缓存 浏览器缓存机制浏览器缓存(Brower Ca...

  • DSBD

    1.浏览器缓存 浏览器每次发起请求,都会先在浏览器缓存中查找该请求的结果以及缓存标识 强制缓存优先于协商缓存进...

  • HTTP缓存机制

    web缓存分为:数据库缓存、服务器缓存(代理服务器、cdn缓存)、浏览器缓存浏览器缓存分为:http缓存、inde...

  • HTTP 缓存控制

    Web 缓存 数据库缓存、服务器端缓存(代理服务器缓存、CDN 缓存)、浏览器(HTTP)缓存 浏览器缓存(本地储...

  • Web浏览器的缓存机制

    原文转载【Web缓存机制系列】2 – Web浏览器的缓存机制 浏览器端的缓存规则 对于浏览器端的缓存来讲,这些规则...

  • 浏览器缓存?优点?清除方法?

    ☆前端优化:浏览器缓存技术介绍 - 简书 浏览器缓存(适用于前端解决缓存问题) - 简书 js清除浏览器缓存问题的...

  • 浏览器缓存

    浏览器缓存 浏览器处理网页的方式 走到协商缓存会返回 304 走到强缓存会返回 200 合理使用浏览器缓存 页面连...

网友评论

      本文标题:2020-09-30(浏览器缓存)

      本文链接:https://www.haomeiwen.com/subject/cqjuuktx.html