gpt4 book ai didi

http - HTTP header Vary :*是什么意思

转载 作者:可可西里 更新时间:2023-11-01 15:12:23 26 4
gpt4 key购买 nike

据我所知,HTTP header Vary 指定了逗号分隔的 HTTP header 列表,在决定请求是否命中缓存时,缓存需要将这些 header 与 URL 一起考虑.

如果省略该 header ,则意味着将仅考虑 URL。

但是当 header 是 Vary:* 时会发生什么?

RFC 2616 14.4

A Vary field value of *** signals that unspecified parameters not limited to the request-headers (e.g., the network address of the client), play a role in the selection of the response representation. The * value MUST NOT be generated by a proxy server; it may only be generated by an origin server.

RFC 2616 13.6

A Vary header field-value of * always fails to match and subsequent requests on that resource can only be properly interpreted by the origin server.

这是否意味着所有带有此 header 的请求都将成为缓存未命中?

我发现,如果您使用它们的 OutputCacheAttribute,ASP.NET 会返回该 HTTP header ,如果您不想要该 header ,或者您想要指定,则必须显式禁用该行为自定义 header ,所以我(想)相信这不太可能。

Vary:* 的实际含义是什么?

谢谢。

最佳答案

Vary:* 告诉缓存响应是根据 HTTP 内容协商的通常方面以外的方面(例如接受、接受语言、接受字符集)选择的。

这实际上告诉缓存不要缓存响应。这就是“对该资源的后续请求只能由源服务器正确解释”的含义。缓存必须将这些请求转发到源服务器。

编辑:Vary 与缓存正交。考虑一下:

获取/foo HTTP/1.1

200 好缓存控制:maxage=60内容位置:/foo.html变化:*

Vary:* 告诉缓存不能缓存对/foo 的请求的响应。但是由于 Content-Location header ,缓存仍然可以存储对/foo.html 请求的响应。

关于http - HTTP header Vary :*是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7599964/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com