Skip to content

HTTP 缓存

强缓存 VS 协商缓存

类型状态码标识符描述适用协议备注
强缓存200 (from cache)Expires设定资源过期时间,受限于本地时间。HTTP/1.0优先级低于 Cache-Control
Cache-Control控制资源缓存时间,格式如 max-age=30,优先级高于 ExpiresHTTP/1.1
协商缓存304 Not Modified
200 OK
Last-Modified
If-Modified-Since
服务器响应资源的最后修改时间。若本地缓存版本是最新的,则返回304。客户端请求时带上资源的最后修改时间,询问服务器资源是否有更新。HTTP/1.0优先级低于 ETag/If-None-Match
ETag
If-None-Match
服务器生成的资源标识符,基于hash。若本地缓存版本是最新的,则返回304。客户端请求时带上资源的ETag值,询问服务器资源是否有更新。HTTP/1.1优先级高于 Last-Modified
混合策略200 OKCache-control: no-store完全不存储任何响应的部分,适用于非常敏感的信息。-每次需要资源时都会重新发起请求
304 Not Modified
200 OK
Cache-Control: no-cache资源可以被缓存,但必须在使用前验证其新鲜度,适用于可能经常更改的信息。-使用 If-Modified-SinceIf-None-Match 验证
200 (from cache)Cache-Control: max-age=31536000对代码文件如js, css等设置长期缓存,并通过文件名hash处理以便更新时立即下载新文件。-配合版本控制使用

Released under the MIT License.