是否有任何理由用“Vary: *”来响应?和“变化:Foo”对于相同的资源?
对于同一资源的请求,HTTP 服务器有时会使用 Vary: *
进行响应,有时会使用 Vary: Foo
进行响应,这是否有任何原因?
缓存应该做什么,如果在接收(并缓存)两个响应之后,它接收到一个具有匹配的 Foo
标头的请求,而 Vary: Foo
响应适合该请求?它可以提供匹配的响应,还是单独的 Vary: *
响应会覆盖它?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
每个响应都是单独评估的,因此它可以选择 Vary: Foo 响应。
请参阅:
Each response is evaluated in isolation, so it can select the Vary: Foo response.
See:
可能存在这样的情况:服务器可以保证在一定时间内资源的表示仅受
Foo
影响,但经过一段时间后,它无法再做出任何保证,并且必须将标头设置为变化:*
。过期优先于验证。由于
Vary: *
强制重新验证,因此缓存应选择Foo
响应(假设它是最新的)。There may be a situation where a server can guarantee that for a certain time a resource's representation is only influenced by
Foo
but after some time have elapsed, it can no longer make any guarantee and must set the header toVary: *
.Expiration is preferred over validation. Since
Vary: *
forces revalidation, the cache should select theFoo
response assuming it is fresh.