当存储多个合适的响应时,缓存必须使用 最近的响应(由Date标头字段确定)。它 也可以使用" Cache-Control转发请求:max-age = 0"要么 "缓存控制:无缓存"消除使用哪种回应的歧义。
它提到了使用Date
或Cache-Control
标头使已存储的回复无效。
关于Last-Modified
标题的内容是什么?我可以将它用于同一目的吗?
答案 0 :(得分:1)
Last-Modified
充当验证者。这些在前面引用的部分中提到过:
当提出请求时,缓存不得重用存储的响应,除非存储的响应是:...
- fresh(参见第4.2节)或
- 允许陈旧(见第4.2.4节)或
- 成功验证(参见第4.3节)。
Section 4.3详细解释了验证。我认为4.3.2对你有意义:
[A]包含
If-Modified-Since
标头字段的请求表示客户端希望按修改日期验证其自己存储的一个或多个响应。如果下列情况之一成立,缓存收件人应该生成304(未修改)响应(使用所选存储响应的元数据):
- 所选的存储响应的字段值为
Last-Modified
早于或等于条件时间戳;- 所选存储的响应中没有
Last-Modified
字段,但它的Date
字段值早于或等于条件时间戳;或者,- 所选存储的响应中既不存在
醇>Last-Modified
也不Date
,但缓存将其记录为早于或等于条件时间戳的时间。
所以是的,这完全符合RFC的要求。由于Last-Modified
/ If-Modified-Since
是一种非常古老的机制,早在HTTP / 1.0中就已经引入,因此您可以期望缓存符合规定。