1. Introduction
HTTP caching [HTTP-CACHING] 以单个资源为粒度运行; 一个 stored response 的 freshness 不会影响其他 stored responses 的 freshness. 这种粒度可以让缓存更高效, 例如, 当一个页面由许多具有不同缓存要求的资源组成时.
不过, 在某些情况下, stored responses 之间的关系也可以用于提升缓存效率.
例如, 经常需要使一组相关资源失效. 这可能是因为一个改变状态的请求会对其他资源产生副作用, 也可能纯粹是为了便于管理 (例如, "invalidate this part of the site"). 将 responses 分组提供了一种专门表达这些关系的方式, 而不是依赖 URL 结构之类的方式.
除了共享 invalidation events 之外, caches 还可以使用分组所指示的关系来优化自身运行 (例如, 为 cache eviction algorithms 的运行提供信息).
第 2 节介绍了一种描述 HTTP caches 中 stored responses 之间关系的方法: 将这些 responses 与一个或多个反映这些关系的 groups 相关联. 该节还说明 caches 如何使用这些信息将 invalidation events 应用于某个 group 的成员.
第 3 节介绍了这类 events 的一个新来源: 一个 HTTP response header field, 它允许改变状态的 response 触发 group invalidation.
这些机制在单个 cache 内运行, 作用于与单个 origin server 关联的 stored responses (见第 2.1 节). 它们不处理多个 caches 之间同步状态的问题 (例如在层级结构或网状结构中), 也不便于将来自不同 origins 的 stored responses 关联起来.