http缓存
Feb 25, 2018
http的缓存策略
关键字段 Cache-Control: max-age, expires, ETag, Last-Modified
优先级顺序
Cache-Control: 强缓存,no-cache是不缓存,max-age设置缓存生效时间,单位为秒(s)Expires: 缓存过期时间,单位是具体时间的 DateETag: 资源内容的 hash 值, 如果资源没变化,If-None-Match为false, 返回 304Last-Modified: 资源的最后修改日期,单位为秒(s),If-Modified-Since包含上一次的时间,如果一致,返回304
ETag Last-Modefied
ETag是对Last-Modefied的功能补充,优先级更高。
- ETag是针对内容的 hash 变化,而
Last-Modefied单位是秒, 对于 1s 内的多次改变无法感知。 - 周期性改变的资源,
Last-Modefied时间会改变,而内容不变的话,ETag 也不变,ETag对于缓存更有利。