Skip to content
阅读进度

如何为 API 响应数据设计合理的 HTTP 缓存策略(ETag、Last-Modified)? ​

返回 数据与搜索 目录

标准回答 ​

用 Cache-Control 明确新鲜期;过期后带 If-None-Match(ETag)或 If-Modified-Since(Last-Modified)向服务器条件请求。未改变返回 304 并复用本地正文;改变则返回新内容及缓存元数据。private/no-store 等策略按敏感性和共享范围设置。

通俗例子 ​

客户端带上旧 ETag 请求,服务器确认未变化后返回 304,客户端继续用本地内容;Cache-Control 决定何时可以直接复用。

深入解释 ​

**服务端怎样知道缓存是否还有效:**客户端保存响应以及 ETag 或 Last-Modified。再次请求时带条件头,服务器判断内容没变可返回 304,让客户端继续使用原正文。

**缓存为什么可能越权:**相同 URL 对不同账号可能返回不同内容。缓存键、Vary 和权限边界必须匹配;退出登录后不能把上一个用户的缓存继续展示给下一个用户。

内容来源 ​

用完整回答理解机制,用真实证据解释项目。