一个HEAD方法的响应是与GET方法请求的响应等价的,除了它没有主体。如果更高效的条件请求机制不可用(由于没有验证器出现在已存储响应中)或如果表示体的传输是不期望的,即使它已经改变,那么HEAD响应的这个属性可以被用来废弃或更新一个缓存的GET响应。

    当一个缓存对一个给定的请求目标发起一个入站HEAD请求并接收到200响应,缓存应该更新或废弃每个它已存储的可能被选择的GET响应(查看4.1节)。

    对于每个已存储的可能已经被选择的响应,如果已存储的响应和HEAD响应已经匹配了任何接收到的验证器字段(ETag和Last-Modified)的值,并且如果HEAD响应由一个Content-Length头字段,Content-Length的值匹配那个已存储响应的值,缓存应该如下面描述的那样更新已存储的响应;否则,缓存应该考虑将已存储响应置为过期的。

    如果一个缓存以HEAD响应中提供的信息更新已存储响应,缓存必须

    • 删除任何在已存储响应中警告码为1xx的Warning头字段(查看5.5节);
    • 保留任何在已存储响应中警告码为2xx的Warning头字段,并且;
    • 使用HEAD响应中提供的其他头字段来替换所有在已存储响应中的对应头字段的实例,并且追加新的头字段到已存储响应的头部分,除非由Cache-Control头字段限制。