为了让浏览器发挥最大作用,尽量遵循以下五点策略:
- 拒绝一切缓存策略:Cache-Control:no-store
- 资源是否每次向服务器请求:Cache-Control:no-cache
- 资源是否被代理服务器缓存:Cache-Control:public/private
- 资源过期时间:Expires:t/Cache-Control:max-age=t,s-maxage=t
- 协商缓存 :Last-Modified/Etag
缓存策略 通过设置HTTP报文实现,可分为强制缓存和协商缓存。下图用于两种缓存方式进行比较:
缓存策略的规则为:先走强制缓存,若命中失败才走协商缓存,发送请求到服务器检查是否命中协商缓存,若命中协商缓存,返回304通知浏览器使用本地缓存,否则返回最新资源
以下两种场景可以尝试设置:
- 频繁变动的资源,设置 Cache-Control:no-cache,让浏览器每次都向服务器发送请求,配合Last-Modified/ETag验证资源是否有效。
- 不常变化的而资源:设置 Cache-Control:max-age=31536000,对文件名哈希处理,当代码修改后生成新的文件,当html文件引入文件名发生改变才会下载最新文件。