Cloudflare 支持了 HTTP 里最丑的部分:Vary
来源: blog.cloudflare.com — 2026-09-23
概述
Vary 这个响应头被人形容为「HTTP 里最丑、还没被改进过的部分」,互操作性也相当糟糕。但它虽然丑却有用:一个 URL 可能有不止一个正确答案——服务器可能给不同浏览器返回不同的图片格式。缓存若忽略 Vary,就可能把错误的字节投给请求方;可若把每个原始头部值都当成不同的键,几个相似的请求又会膨胀成成千上万个几乎无法复用的缓存条目。Vary 的根本问题是它只告诉缓存哪些请求字段可能影响响应,却不告诉缓存哪些差异才真正重要。Cloudflare 现在在 Cache Rules 中对所有套餐提供 Vary 支持。
核心要点
- 一个 URL 可以对应多个正确响应,例如同一路径按 Accept 返回 HTML 或 JSON。
- 没有 Vary 时,先进入缓存的那个响应会被同时发给两类客户端,结果是 JSON 解析失败或浏览器收到接口响应。
- 但如果把每个原始头部值都当成独立键,少量请求就会散布成大量几乎无法复用的缓存条目。
- 根本症结在于 Vary 只声明「哪些字段可能影响响应」,并不说明「哪些差异真的重要」。
- 新的支持让你对已知的协商头部做归一化、对确有意义的细小差异原样透传,或在变化难以预测时直接绕过缓存。
金句
源站声明什么可能变化,而由你来决定对缓存来说多少变化才真正有意义。
👍 0
👎 0
← 返回 Lobsters 首页