<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Cloudflare changelogs | Cache</title><description>Cloudflare changelogs for Cache</description><link>https://cloudflaredoc.ubitools.com/changelog/</link><item><title>Cache - 使用 Vary 缓存同一 URL 的多个版本</title><link>https://cloudflaredoc.ubitools.com/changelog/post/2026-07-02-vary-for-cache-rules/</link><guid isPermaLink="true">https://cloudflaredoc.ubitools.com/changelog/post/2026-07-02-vary-for-cache-rules/</guid><description>&lt;p&gt;您的源站可以通过返回 &lt;a href=&quot;https://www.rfc-editor.org/rfc/rfc9110.html#name-vary&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;code&gt;Vary&lt;/code&gt;&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt; 响应标头，为同一个 URL 提供不同的响应 —— 例如根据 &lt;code&gt;Accept-Language&lt;/code&gt; 提供不同的语言，或者根据 &lt;code&gt;Accept&lt;/code&gt; 提供不同的格式。Cloudflare 的缓存现在直接在 &lt;a href=&quot;https://cloudflaredoc.ubitools.com/cache/how-to/cache-rules/&quot;&gt;缓存规则（Cache Rules）&lt;/a&gt; 中遵循该标头，因此同一个 URL 可以保存多个缓存版本，并且每个请求都与正确的版本进行匹配。以前必须绕过缓存以保持正确性的内容现在可以被缓存，遵循标准的 &lt;a href=&quot;https://www.rfc-editor.org/rfc/rfc9111.html#name-calculating-cache-keys-with&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;HTTP 缓存行为&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt;。&lt;/p&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;发生了什么变化&quot;&gt;发生了什么变化&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#发生了什么变化&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;您的源站现在通过在其 &lt;code&gt;Vary&lt;/code&gt; 响应中列出哪些请求标头重要来决定它们，而您则控制 Cloudflare 如何处理每一个。当您使用缓存规则启用了 Vary 且响应包含 &lt;code&gt;Vary&lt;/code&gt; 标头时，列出的请求标头将成为缓存键的一部分。&lt;/p&gt;
&lt;p&gt;对于您的源站变化所依赖的每个标头，选择以下三个操作之一：&lt;/p&gt;
&lt;div class=&quot;table-scroll&quot; tabindex=&quot;0&quot; role=&quot;region&quot; aria-label=&quot;Table&quot;&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;操作&lt;/th&gt;
&lt;th&gt;行为&lt;/th&gt;
&lt;th&gt;最适用于&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;normalize&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;在匹配之前将等效的标头值转换为相同的缓存键值，折叠冗余版本。&lt;/td&gt;
&lt;td&gt;大多数 &lt;code&gt;Accept&lt;/code&gt;、&lt;code&gt;Accept-Language&lt;/code&gt; 和 &lt;code&gt;Accept-Encoding&lt;/code&gt; 用例。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;passthrough&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;使用原始标头值选择缓存版本，并将其不作修改地转发到源站。&lt;/td&gt;
&lt;td&gt;当标头值中逐字节的差异应当创建新版本时。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;bypass&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;只要此标头名称出现在源站的 &lt;code&gt;Vary&lt;/code&gt; 响应中，就绕过缓存。&lt;/td&gt;
&lt;td&gt;按用户的值，或包含太多可能值以至于无法安全缓存的标头。&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;优势&quot;&gt;优势&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#优势&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;更高的缓存命中率&lt;/strong&gt;：&lt;code&gt;normalize&lt;/code&gt; 将语义上等效的标头视为一个版本。例如，&lt;code&gt;Accept-Language: en-US, fr;q=0.8&lt;/code&gt; 和 &lt;code&gt;Accept-Language: fr;q=0.8, en-GB&lt;/code&gt; 都解析为相同的缓存键，因此您可以从缓存而非源站提供更多请求的服务。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;正确的内容协商&lt;/strong&gt;：请求始终接收与其标头相匹配的缓存版本，从而使语言和格式变体保持准确。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;无需更改源站或 Worker&lt;/strong&gt;：如果您的源站已经发送 &lt;code&gt;Vary&lt;/code&gt;，您完全可以在缓存规则（Cache Rules）中配置该行为。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;符合标准&lt;/strong&gt;：缓存键计算遵循 RFC 9111，并且 &lt;code&gt;Vary: *&lt;/code&gt; 像 RFC 9110 要求的那样继续绕过缓存。&lt;/li&gt;
&lt;/ul&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;可用性&quot;&gt;可用性&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#可用性&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;缓存规则中的 Vary 适用于所有计划（免费版、专业版、商业版和企业版）。对于 Workers 子请求中的每个请求控制，请使用 &lt;a href=&quot;https://cloudflaredoc.ubitools.com/workers/runtime-apis/request/#the-cfvary-property&quot;&gt;&lt;code&gt;cf.vary&lt;/code&gt;&lt;/a&gt; 属性。&lt;/p&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;开始使用&quot;&gt;开始使用&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#开始使用&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;在 &lt;a href=&quot;https://dash.cloudflare.com/?to=/:account/:zone/caching/cache-rules&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Cloudflare 仪表板&lt;span class=&quot;external-link&quot;&gt; ↗&lt;/span&gt;&lt;/a&gt; 的 &lt;strong&gt;Cache（缓存）&lt;/strong&gt; &amp;gt; &lt;strong&gt;Cache Rules（缓存规则）&lt;/strong&gt; 下配置 Vary，或通过 &lt;a href=&quot;https://cloudflaredoc.ubitools.com/ruleset-engine/rulesets-api/&quot;&gt;Rulesets API&lt;/a&gt; 进行配置。要了解 Vary 如何影响缓存键以及每个操作的工作原理，请参阅 &lt;a href=&quot;https://cloudflaredoc.ubitools.com/cache/concepts/vary/&quot;&gt;Vary&lt;/a&gt; 和 &lt;a href=&quot;https://cloudflaredoc.ubitools.com/cache/how-to/cache-rules/settings/#vary&quot;&gt;缓存规则 Vary 设置&lt;/a&gt;。&lt;/p&gt;</description><pubDate>Thu, 02 Jul 2026 00:00:00 GMT</pubDate><product>Cache</product><category>Cache</category></item><item><title>Cache - 不可缓存的响应现在将返回 BYPASS 状态</title><link>https://cloudflaredoc.ubitools.com/changelog/post/2026-05-26-bypass-status-for-uncacheable-responses/</link><guid isPermaLink="true">https://cloudflaredoc.ubitools.com/changelog/post/2026-05-26-bypass-status-for-uncacheable-responses/</guid><description>&lt;p&gt;只要响应不可缓存，Cloudflare 现在就会返回 &lt;code&gt;BYPASS&lt;/code&gt; &lt;a href=&quot;https://cloudflaredoc.ubitools.com/cache/concepts/cache-responses/&quot;&gt;缓存状态&lt;/a&gt;，而不是像以前那样根据 Cloudflare 选择不缓存响应的原因而混合返回 &lt;code&gt;BYPASS&lt;/code&gt; 和 &lt;code&gt;MISS&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;Cloudflare 可能拒绝缓存响应有多种原因 —— 例如，响应超出了您计划的 &lt;a href=&quot;https://cloudflaredoc.ubitools.com/cache/concepts/default-cache-behavior/#cacheable-size-limits&quot;&gt;最大可缓存文件大小&lt;/a&gt;、源站发送了 &lt;code&gt;Cache-Control: no-cache&lt;/code&gt;、&lt;code&gt;private&lt;/code&gt; 或 &lt;code&gt;max-age=0&lt;/code&gt;、响应包含 &lt;code&gt;Set-Cookie&lt;/code&gt; 标头，或者请求包含 &lt;code&gt;Authorization&lt;/code&gt; 标头。&lt;/p&gt;
&lt;p&gt;以前，只有其中一些情况会返回 &lt;code&gt;BYPASS&lt;/code&gt;。其他情况（例如响应超出最大可缓存文件大小）在每次请求时都会返回 &lt;code&gt;MISS&lt;/code&gt;，无论 &lt;a href=&quot;https://cloudflaredoc.ubitools.com/cache/concepts/cache-control/#origin-cache-control-behavior&quot;&gt;源站缓存控制（Origin Cache Control）&lt;/a&gt; 是开启还是关闭。因为该响应永远无法被缓存，所以每个随后的请求也会返回 &lt;code&gt;MISS&lt;/code&gt;，这看起来与损坏的缓存没有什么区别，很难区分 Cloudflare 是在尝试缓存资产但失败了，还是故意选择不缓存它。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;BYPASS&lt;/code&gt; 现在一致地表示 Cloudflare 拒绝缓存该响应，无论出于何种原因。&lt;code&gt;MISS&lt;/code&gt; 专门保留用于在请求时未在本地缓存中的可缓存响应。&lt;/p&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;您的分析数据中将出现什么变化&quot;&gt;您的分析数据中将出现什么变化&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#您的分析数据中将出现什么变化&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;在此更改部署后，您应该会看到：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MISS 率下降&lt;/strong&gt;：不可缓存的响应不再计为缓存未命中。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;BYPASS 率上升&lt;/strong&gt;：这些相同的响应现在报告为绕过（bypass）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;缓存命中率上升&lt;/strong&gt;：命中率计算不再包含永远无法被缓存的不可缓存流量，从而为您提供更准确的缓存效果视图。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;您的总请求量和源站流量没有变化 —— 只有缓存状态标签不同。&lt;/p&gt;
&lt;div tabindex=&quot;-1&quot; class=&quot;heading-wrapper level-h4&quot;&gt;&lt;h4 id=&quot;浏览器缓存-ttl-行为得以保留&quot;&gt;浏览器缓存 TTL 行为得以保留&lt;/h4&gt;&lt;a class=&quot;anchor-link&quot; href=&quot;#浏览器缓存-ttl-行为得以保留&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;anchor-icon&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path fill=&quot;currentcolor&quot; d=&quot;m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;缓存状态标签是唯一发生改变的内容 —— 针对任何给定的响应，浏览器缓存 TTL 的处理与以前完全相同：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;历史上因为 Cloudflare 拒绝缓存而返回 &lt;code&gt;MISS&lt;/code&gt; 的响应（例如，超过最大可缓存文件大小的响应）现在返回 &lt;code&gt;BYPASS&lt;/code&gt;，但继续应用浏览器缓存 TTL —— 就像它们被标记为 &lt;code&gt;MISS&lt;/code&gt; 时一样。&lt;/li&gt;
&lt;li&gt;历史上返回 &lt;code&gt;BYPASS&lt;/code&gt; 并跳过浏览器缓存 TTL 的响应继续跳过浏览器缓存 TTL。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;在两种情况下，应用浏览器缓存 TTL 的决定取决于 Cloudflare 不缓存响应的深层原因，而不是取决于新的 &lt;code&gt;BYPASS&lt;/code&gt; 标签。&lt;/p&gt;</description><pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate><product>Cache</product><category>Cache</category></item></channel></rss>