缓存分类

  1. HTTP缓存
  2. 浏览器缓存

HTTP缓存

http缓存主要是在请求服务器资源时对资源进行的缓存处理,主要包含强缓存和协商缓存

http请求缓存步骤:

  1. 发起请求
  2. 在浏览器中查找是否存在缓存
  3. 没有缓存,则直接发起http请求
  4. 存在缓存,判断缓存是否失效,通过Cache-Control、Expire
  5. 失效,则请求协商缓存,即通过Etag或者Last-Modified
强缓存

强缓存即在浏览器中查找缓存内容,如果缓存内容不失效,则直接使用改缓存结果
image.png

缓存是否失效通过请求头中Expire和Cache-Control进行判断,会在响应头中返回,Cache-Control的优先级高于Expire,如图:
image.png

强缓存资源缓存位置主要有memory cache, disk cache, Service Worker 等,浏览器查找缓存时会先查找 Service Worker,然后查找 memory cache ,最后查找 disk cache

  • memory cache 资源存储在内存中,查找时间短,存储时间短
  • disk cache 资源存储在硬盘中,查找时间长,可以持久存储
  • service worker 单独存储在一个位置,持久存储
协商缓存

强缓存获取失败后,会发起协商缓存的请求,请求头部携带Etag或者Last-Modified缓存标志,由服务器判断是否使用缓存,etag优先级高于Last-Modified
image.png

浏览器缓存

本地缓存

  1. cookie 4k左右
  2. localstorage 5M左右
  3. sessionStorage 5M左右
  4. indexDB等大容量存储 50M左右

一凡
11 声望0 粉丝