Skip to main content

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

使用 HTTP 的应用程序通常会指定其他形式的缓存. 例如, Web 浏览器通常具有历史机制, 例如可用于重新显示会话中较早检索的表示的 "后退 (Back)" 按钮.

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

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

本规范不禁止应用程序考虑 HTTP 缓存; 例如, 历史机制可能会告诉用户视图已过期, 或者它可能遵守缓存指令 (例如, Cache-Control: no-store).

但是, 当应用程序缓存数据并且不向用户明显显示或不易于用户控制时, 强烈建议定义其相对于 HTTP 缓存指令的操作, 以免让期望遵守缓存语义的作者感到惊讶. 例如, 虽然定义 HTTP "之上" 的应用程序缓存可能是合理的, 该缓存允许包含 Cache-Control: no-store 的响应被重用于与获取它的请求直接相关的请求 (例如在同一页面加载期间创建的请求), 但如果允许它被重用于与获取它的请求完全无关的请求, 则可能会让用户和作者感到惊讶和困惑.