一、强缓存
缓存未过期只取本地, 资源更新则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