跳到主要内容

6. 与应用和其他缓存的关系 (Relationship to Applications and Other Caches)

使用 HTTP 的应用通常会规定其他形式的缓存. 例如, Web 浏览器通常具有历史机制, 如 "Back" 按钮, 可用于重新显示会话早些时候检索到的表示.

同样, 一些 Web 浏览器会在页面视图内实现对图像和其他资产的缓存; 它们可能遵循, 也可能不遵循 HTTP 缓存语义.

本规范中的要求不一定适用于应用从 HTTP 缓存检索数据之后如何使用这些数据. 例如, 即使先前的表示已经过期, 历史机制也可以显示它; 应用也可以在新鲜生命周期之外以其他方式使用缓存数据.

本规范并不禁止应用考虑 HTTP 缓存; 例如, 历史机制可以告知用户某个视图是陈旧的, 或者可以遵循缓存指令 (例如 Cache-Control: no-store).

但是, 当应用缓存数据, 且没有向用户清楚呈现这一点, 或没有让用户易于控制这一行为时, 强烈建议根据 HTTP 缓存指令来定义其操作, 以避免让期望缓存语义得到遵循的作者感到意外. 例如, 在 HTTP "之上"定义一个应用缓存, 允许包含 Cache-Control: no-store 的响应被用于与获取该响应的请求直接相关的请求 (例如同一次页面加载期间创建的请求), 这可能是合理的; 但允许将其重用于与获取该响应的请求完全无关的请求, 可能会让用户和作者感到意外和困惑.