正确的缓存操作保留了HTTP传输的语义([RFC7231]),同时消除了已经保存在缓存中的信息的转移。虽然缓存是一个完全可选的HTTP特性,可以假定重用缓存响应是期望的并且在没有要求或本地配置阻止的时候重用是默认的行为。因此,HTTP缓存要求的重点是防止缓存不适当地存储不可重用的响应或重复使用存储的响应,而不是强制缓存始终存储和重用特定的响应。

    每个缓存实体由一个缓存键和一个或多个对应于使用相同键的先前请求的HTTP响应组成。最常见的缓存实体形式是取回请求的成功结果:即,GET请求的200响应,它包含了由请求目标指定的资源的一个标识(RFC7231,4.3.1节)。然而,它也可能缓存永久重定向,否定结果(例如,404),不完整结果(例如,206)和除GET方法以外的其他方法的响应(如果方法定义允许这样缓存并且定义了合适的东西作为缓存键)。

    主要缓存键由请求方法和目标URI组成。但是,由于目前常用的HTTP缓存通常仅限于缓存对GET的响应,因此许多缓存简单地拒绝其他方法,并仅使用URI作为主缓存键。

    如果一个请求目标需要进行内容协商,它的缓存条目可能会包含多个存储的响应,每个响应通过原始请求的选择标头字段的值的一个辅助键来区分(4.1节)。