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对于缓存更有利。