跳转到内容
搜索文档

更新日志

Cloudflare 的最新更新与改进。

Back to all posts

不可缓存的响应现在将返回 BYPASS 状态

只要响应不可缓存,Cloudflare 现在就会返回 BYPASS 缓存状态,而不是像以前那样根据 Cloudflare 选择不缓存响应的原因而混合返回 BYPASSMISS

Cloudflare 可能拒绝缓存响应有多种原因 —— 例如,响应超出了您计划的 最大可缓存文件大小、源站发送了 Cache-Control: no-cacheprivatemax-age=0、响应包含 Set-Cookie 标头,或者请求包含 Authorization 标头。

以前,只有其中一些情况会返回 BYPASS。其他情况(例如响应超出最大可缓存文件大小)在每次请求时都会返回 MISS,无论 源站缓存控制(Origin Cache Control) 是开启还是关闭。因为该响应永远无法被缓存,所以每个随后的请求也会返回 MISS,这看起来与损坏的缓存没有什么区别,很难区分 Cloudflare 是在尝试缓存资产但失败了,还是故意选择不缓存它。

BYPASS 现在一致地表示 Cloudflare 拒绝缓存该响应,无论出于何种原因。MISS 专门保留用于在请求时未在本地缓存中的可缓存响应。

您的分析数据中将出现什么变化

在此更改部署后,您应该会看到:

  • MISS 率下降:不可缓存的响应不再计为缓存未命中。
  • BYPASS 率上升:这些相同的响应现在报告为绕过(bypass)。
  • 缓存命中率上升:命中率计算不再包含永远无法被缓存的不可缓存流量,从而为您提供更准确的缓存效果视图。

您的总请求量和源站流量没有变化 —— 只有缓存状态标签不同。

浏览器缓存 TTL 行为得以保留

缓存状态标签是唯一发生改变的内容 —— 针对任何给定的响应,浏览器缓存 TTL 的处理与以前完全相同:

  • 历史上因为 Cloudflare 拒绝缓存而返回 MISS 的响应(例如,超过最大可缓存文件大小的响应)现在返回 BYPASS,但继续应用浏览器缓存 TTL —— 就像它们被标记为 MISS 时一样。
  • 历史上返回 BYPASS 并跳过浏览器缓存 TTL 的响应继续跳过浏览器缓存 TTL。

在两种情况下,应用浏览器缓存 TTL 的决定取决于 Cloudflare 不缓存响应的深层原因,而不是取决于新的 BYPASS 标签。