HTTP 标头 Vary:* 的含义是什么

2023-11-25

据我所知,HTTP 标头Vary指定以逗号分隔的 HTTP 标头列表,在确定请求是缓存命中还是未命中时,缓存需要将这些标头与 URL 一起考虑。

如果省略该标头,则表示仅考虑 URL。

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

RFC 2616 14.4

Vary 字段值 *** 表示未指定的参数不 仅限于请求标头(例如, client),在响应表示的选择中发挥作用。 * 值不能由代理服务器生成;可能只是 由原始服务器生成。

RFC 2616 13.6

Vary 标头字段值为* 总是匹配失败以及随后的 对该资源的请求只能由 源服务器。

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

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

其实际意义是什么Vary:* ?

Thanks.


Vary:* 告诉缓存已根据 HTTP 内容协商的常规方面之外的方面(例如 Accept、Accept-Language、Accept-Charset)来选择响应。

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

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

获取 /foo HTTP/1.1

200 好的 缓存控制:maxage=60 内容位置:/foo.html 各不相同: *

Vary:* 告诉缓存无法缓存对 /foo 的请求的响应。但由于 Content-Location 标头,缓存仍然可以存储对 /foo.html 的请求的响应。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HTTP 标头 Vary:* 的含义是什么 的相关文章

随机推荐

  • java版本错误,无法升级jenkins

    我的 Ubuntu 14 04 上运行着 Jenkins 我正在尝试使用正常的方式升级 jenkinsapt get install jenkins 但是当我尝试这样做时 我不断收到错误 Setting up jenkins 2 73 Fo
  • 如何从 NIB 读取 UITableViewCell(子类)的高度?

    我在 NIB 中定义了一个 UITableViewCell 实际上是一个子类 在 NIB 中 我将框架高度设置为 183 还将 行高 设置为 183 并勾选了自定义 在我最初的问题中 这里一切都出了问题 看起来我得到了错误的高度 单元格加载
  • 使用 1 个选项取消选择“多选”中的所有选项

    我目前有以下js代码 function clearMulti option var i var select document getElementById option parentNode id for i 1 i
  • 在 Spring Data Rest 中修改 @OneToMany 实体而不使用其存储库

    在我的项目中我使用对象类型A与类型的对象具有 OneToMany 关系 orphanRemoval true cascade CascadeType ALL fetch FetchType EAGER B 我需要 SpringDataRes
  • 如何向 API 提供“回调”? [复制]

    这个问题在这里已经有答案了 我正在读一些模块文档在方法参数的解释中看到一些我不明白的东西 callback 将使用参数调用的回调函数 列表等于callbackargs result 计算完成后 callbackargs 回调函数的附加参数
  • 如何更改 R 中的分辨率(或重新网格)数据

    我有一个数据集 其中包含 lon lat 和涵盖 1961 年至 1970 年的月平均变量 例如温度或降水 该数据集的分辨率为 0 5 x 0 5 度经 纬度 覆盖整个地球 并以 我使用 R 提取数据的 NC 文件 library ncdf
  • 如何将控制台输出写入cpp中的文本文件?

    我正在尝试将控制台数据写入 cpp 中的单独文本文件中 任何人都可以帮我提供示例代码 有多种方法可以做到这一点 您可以使用以下命令从命令行重定向它programname gt out txt 或者你可以使用freopen out txt w
  • 制作不重叠的气泡图

    我目前正在尝试在 Matplotlib 中制作气泡图 其中气泡不重叠 因此将圆圈 气泡包装在图表中 大约像 我认为可能有效的方法 使用 x 1 y 1 绘制第一个数据点 通过计算给定标量值的气泡半径来随机绘制其他数据点以避免重叠 The f
  • 有关 JFreeChart 叠加的帮助

    我遇到了 JFreeChart 重叠图的问题 我正在使用 JFreeChart 1 0 13 我想要做的事情似乎在 JFreeChart 的早期版本中更容易做到 该图显示折线图和条形图 折线图绘制的 Y 轴数据范围为 0 100 范围 条形
  • 如何简化嵌套map调用?

    假设我有一些嵌套函子 例如List Option Int 并需要致电map最内在的一个 现在我正在使用嵌套maps scala gt val opts List Option Int List Some 0 Some 1 opts List
  • nodemailer 无效登录:535 身份验证失败

    我正在尝试在我的节点应用程序中使用nodemailer npm 包 通过联系页面发送电子邮件 它给我这个 535 身份验证失败错误 但我可以向您保证我的电子邮件和密码绝对正确 var express require express var
  • Rails 3 自动资产部署到 Amazon CloudFront?

    Rails 3 1 中是否有可用的 gem 或方法可以自动将资产上传到亚马逊云前端并使用这些资产而不是提供本地托管的资产 我想手动上传编译的资产然后更改 Rails 应用程序配置以使用该资产主机很容易 但是当修改资产时 需要再次手动上传到云
  • 设置 templateLocation 参数时数据流作业运行失败

    当我传递参数暂存 临时和输出 GCS 存储桶位置时 数据流作业失败并出现以下异常 Java代码 final String used Arrays copyOf args args length 1 used used length 1 pr
  • 防止在 Vim 中打开 NERDTree 或 MiniBuffExplorer 窗口内的文件

    我发现自己在 Vim 中打开了错误的窗口 有时是 NERDTree 或 MiniBuffExplorer 这真的让我很失望 我确信这种情况正在发生 因为我的光标错误地聚焦在这些窗口之一内 但是有什么我可以添加到我的 vimrc文件来防止这种
  • Postfix - 如何处理传入的电子邮件? [关闭]

    Closed 这个问题是无关 目前不接受答案 有人知道如何在 postfix 中处理虚拟邮箱的传入电子邮件吗 我正在构建 Web 应用程序 用户通过向应用程序发送电子邮件来添加新内容 每个用户使用的电子邮件地址是自定义的 例如 电子邮件受保
  • 在 Qt 中将 C++ 对象公开给 Javascript

    有什么方法可以将 C 对象 函数公开给 Qt 中 QtWebKit 浏览器内运行的 JavaScript 可以将 ActionScript 对象公开给在 Adob e AIR 中的 WebKit 浏览器内运行的 JS 代码 我正在 Qt 中
  • 在段落中放置表情符号而不影响“行高”

    如何在不影响段落内容的情况下插入表情符号line height不管表情有多大 IE 喜欢 我得到的最接近的是position absolute or vertical align text top 其中没有一个能完成这项工作 p img h
  • jQuery:获取从 中选择的文件名

    这段代码应该可以工作in IE 甚至不要在 Firefox 中测试它 但事实并非如此 我想要的是显示附件的名称 有什么帮助吗
  • Web.config 允许特定用户进行位置访问

    我有一个网络服务器 用户可以从其中下载特定于每个用户的文件 为了确保每个用户只能下载自己的文件 他们必须通过以下方式进行身份验证基本身份验证 因此 对于每个用户 服务器上都有一个 Windows 帐户 该帐户具有对用户特定文件夹的读取权限
  • HTTP 标头 Vary:* 的含义是什么

    据我所知 HTTP 标头Vary指定以逗号分隔的 HTTP 标头列表 在确定请求是缓存命中还是未命中时 缓存需要将这些标头与 URL 一起考虑 如果省略该标头 则表示仅考虑 URL 但是当标题是时会发生什么Vary RFC 2616 14