HTTP缓存策略

352 阅读1分钟

为了让浏览器发挥最大作用,尽量遵循以下五点策略:

  • 拒绝一切缓存策略: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报文实现,可分为强制缓存和协商缓存。下图用于两种缓存方式进行比较:

WX20210709-135944.png

WX20210709-140039.png

缓存策略的规则为:先走强制缓存,若命中失败才走协商缓存,发送请求到服务器检查是否命中协商缓存,若命中协商缓存,返回304通知浏览器使用本地缓存,否则返回最新资源

以下两种场景可以尝试设置:

  • 频繁变动的资源,设置 Cache-Control:no-cache,让浏览器每次都向服务器发送请求,配合Last-Modified/ETag验证资源是否有效。
  • 不常变化的而资源:设置 Cache-Control:max-age=31536000,对文件名哈希处理,当代码修改后生成新的文件,当html文件引入文件名发生改变才会下载最新文件。