缓存分类
- HTTP缓存种类: 私有缓存、共享缓存
- 具体分类:浏览器缓存、代理缓存、网关缓存、CDN、反向代理、负载均衡
- 浏览器缓存(私有)内容有: 导航、网页、源码,可以实现离线浏览
- 代理缓存(共享)
缓存控制 Cache-Control
缓存具体形式可以通过HTTP请求头携带 Cache-Control属性实现
缓存驱逐:新的缓存将旧的缓存内容覆盖的过程叫缓存驱逐
缓存计算方式:
- 判断有无max-age过期时间,有的话直接返回
- 没有max-age 判断有无 expires 属性
- 没有expires 判断有无 last-Modified, last-modified-Date/10即是缓存时间
鲜活度
加速资源: 对不频繁更新文件 css/js加版本号,这个技术叫 revving ,除了版本号之外,也可以使用时间戳和hash来保证唯一性
强弱缓存:
- 强缓存: 服务器应答返回ETags, 客户端携带 If-None-Match 属性访问,
- 弱缓存: 服务器应答返回last-Modified,客户端后续请求需携带If-Modified-since 属性访问,
Vary HTTP 响应头决定了对于后续的请求头,如何判断是请求一个新的资源还是使用缓存的文件。
Vary缓存: 具备动态内容的多样性,常用来检测不同设备的缓存,使用: Vary:User-Agent
参考资源:
MDN-HTTP缓存