前言
本文主要内容是浏览器的缓存分类。
正文
- 浏览器缓存
- service worker
- memory cache
- 1.与此相关的机制是浏览器的preloader
- 2.在浏览器解析、执行css/js文件时,会利用空隙请求网络资源,如<link rel=”preload”>
- 3.从memory cache中获取资源时,会忽略max-age=0、no-cache等头部配置,而如果遇到no-store则不会使用memory cache
- disk cache
- 强制缓存
- Expires
- HTTP/1.0字段,绝对时间
- 两个缺点
- 1.由于是绝对时间,用户可修改本地时间导致缓存时效
- 2.写法复杂,容易导致拼写错误导致失效
- Cache-Control
- 可缓存性
- public/private
- no-store/no-cache
- 时效性
- max-age=<seconds>/s-maxage=<seconds>
- 重验证
- must-revalidate
- proxy-revalidate
- 对比缓存
- Last-Modified/If-Modified-Since
- Etag/If-None-Match
- 备注
- 与强制缓存不同的是,对比缓存的判断依然需要通过发送HTTP请求来完成,但与发送新的HTTP请求相比,对比缓存的响应体会小很多。
- 对比缓存是作为强制缓存失效后的一种后备方案。
- http request