小计浏览器缓存策略

一、强缓存

缓存未过期只取本地, 资源更新则GG。

  • Cache-Control public, max-age=xxx
  • Expire

二、协商缓存

每次都请求服务器?

替换路径?

  • hash 每次打包时生成的hash,不可用
  • chunkhash 单独chunk 的hash
  • contenthash 内容变化时的hash

三、ETag & Last-Modified

  • Nginx官方默认的ETag计算方式是为”文件最后修改时间16进制-文件长度16进制”。例:ETag: “59e72c84-2404”
  • Express框架使用了serve-static中间件来配置缓存方案,其中,使用了一个叫etag的npm包来实现etag计算
  • 请求头带上了if-modified-since和if-none-match两个字段,则先判断etag,再判断last-modified