Home / cs-notes / Network / Protocol / HTTP / 应用 / 缓存 / 缓存验证
- ETag 首部字段
- 资源的唯一标识
- URL 不能唯一表示资源
- 如
http://www.google.com/
- 有中文、英文等不同资源
- 只有 ETag 才能对这两个资源进行唯一标识
- 如
ETag: “82e22293907ce725faf67773957acd12”
- 可以将缓存资源的 ETag 值放入 If-None-Match 首部
- 服务器收到该请求后
- 判断缓存资源的 ETag 值和资源的最新 ETag 值是否一致
- 如果一致则表示缓存资源有效
- 返回 304 Not Modified
- 如果一致则表示缓存资源有效
- 判断缓存资源的 ETag 值和资源的最新 ETag 值是否一致
- 服务器收到该请求后
- Last-Modified 首部字段
- 也可用于缓存验证
- 包含于:源服务器发送的响应报文
- 指示源服务器对资源的最后修改时间
- 弱校验器
- 只能精确到一秒
- 通常作为 ETag 的备用方案
- 如果未含于首部字段
- 客户端可以在后续请求中带上 If-Modified-Since 来验证缓存
- 被请求资源
- 在给定时间后修改
- 状态码: 200 OK
- 在给定时间后未修改
- 状态码: 304 Not Modified
- 在给定时间后修改
Last-Modified: Wed, 21 Oct 2015 07:28:00 GMT If-Modified-Since: Wed, 21 Oct 2015 07:28:00 GMT