美文网首页
前端HTTP缓存

前端HTTP缓存

作者: may505 | 来源:发表于2021-10-11 15:50 被阅读0次
简介

在面试的时候总是遇到缓存相关问题,回答总是停留缓存就是从浏览器中获取,不向服务器发送请求,回答的不让面试官满意,索性抽点时间整理一下前端相关的缓存,希望下次回答的时候能够多讲点。

前端缓存分为强缓存协商缓存,强缓存就是在缓存未失效时,不在请求服务端,协商缓存就是去跟服务器比较是否需要重新获取资源 。

强缓存

强缓存分为两种,Cache-controlExpiresExpires是HTTP1.0的东西,它的值是一个格林时间,比如Expires: Wed, 21 Oct 2015 07:28:00 GMT,由于服务器端和浏览器端的时间差异问题,浏览器比服务器时间快,会导致缓存失效。Cache-control是HTTP1.1时代的新东西,设置的是一个相对时间,Cache-Control:public, max-age=31536000,在31536000秒后才缓存才失效,Cache-control有很多取值。

  • public: 可以在客户端和代理服务缓存
  • private: 只可以在客户端缓存,,不能在在代理服务器缓存
  • no-cahce: 要求客户端提交缓存信息与服务器端进行验证(协商缓存)
  • no-store: 不使用缓存,每次都去服务获取数据
  • max-age=xxx: 缓存多少秒后失效

强缓存在缓存失效内,不会从原始服务器获取新的数据,假如在缓存时段内服务器有资源更新,会导致资源获取不及时。

协商缓存

协商缓存有两组报文

  • Last-Modified和If-modified-since
  • ETag和If-None-Match


    image.png
  1. Last-Modified和If-modified-since都是时间格林时间,当请求资源时,服务端会把资源修改时间已格林时间格式放在报文Last-Modified发生给客户端,客户端再次请求资源时,会把上次返回的是Last-Modified的值放在If-modified-since中,服务端根据客户端的If-modified-since的值跟资源修改时间做判断,如果相等的话返回304,从缓存获取资源,如果不相等返回200,重新获取资源,重新建立缓存。虽然Last-modifiedIf-modified-since解决了强缓存带来的问题,但是格林时间只精确到秒,如果在1秒发生多次修改,也会导致资源获取不及时
  2. Etag和If-None-Match,只有当文件发生变化后Etag的值才会发生变化,客户端访问服务端时,服务端把文件的Etag值返回给客户端,下次客户端访问时把上次的Etag值放在If-None-Match,服务端根据客户端的If-None-match值跟资源的Etag值做比较,如果值发生变化走200,重新获取资源和建立缓存,如果相当返回304走缓存

相关文章

  • 前端缓存

    前端缓存 前端缓存主要是分为HTTP缓存和浏览器缓存。其中HTTP缓存是在HTTP请求传输时用到的缓存,主要在服务...

  • 一文读懂http缓存(超详细)

    前端缓存 前端缓存可分为两大类:http缓存和浏览器缓存。我们今天重点讲的是http缓存,所以关于浏览器缓存大家自...

  • 前端缓存详解

    一、前言 前端缓存主要是分为HTTP缓存和浏览器缓存。其中HTTP缓存是在HTTP请求传输时用到的缓存,主要在服务...

  • 前端 http 缓存

    前端面试常问第二大问题是http缓存相关内容。说真的,http缓存相关的细节比较多,并且 http 常用协议版本有...

  • 前端HTTP缓存

    简介 在面试的时候总是遇到缓存相关问题,回答总是停留缓存就是从浏览器中获取,不向服务器发送请求,回答的不让面试官满...

  • 前端缓存

    前端缓存 提示这里讲的前端缓存是指前端对接口数据的缓存处理,而不是通过 HTTP(s)缓存 前言 通常会在项目中有...

  • 前端缓存的理解 或者 前端数据持久化的理解(强制缓存、协商缓存)

    前端缓存分为HTTP缓存和浏览器缓存 其中HTTP缓存是在HTTP请求传输时用到的缓存,主要在服务器代码上设置;而...

  • axios cache前端数据缓存

    提示这里讲的前端缓存是指前端对接口数据的缓存处理,而不是通过 HTTP(s)缓存 GITHUB[https://s...

  • 前端缓存接口数据的实现

    前端缓存 API 接口数据,前端怎么知道数据是否变了,该不该取缓存的数据呢。可以采用 HTTP 协商缓存 ETag...

  • 前端缓存之HTTP缓存

    说真的,当自己还很小白的时候,明明修改了JS的内容了,但是就是没有加载成功,那时候感觉好神奇,好没道理。后来知道了...

网友评论

      本文标题:前端HTTP缓存

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