生活分享

Cloudflare 宣布 Cache Rules 支援 HTTP Vary 標頭,所有方案皆可使用

Cloudflare 於 2026 年 9 月 22 日宣布在 Cache Rules 中支援 HTTP Vary 標頭,讓使用 Cloudflare 的網站自行決定各請求標頭如何影響快取。本文用淺白方式說明它是什麼、三種處理動作,以及對網站管理者與一般使用者的影響。

閱讀時間約 5 分鐘

Cloudflare 宣布 Cache Rules 支援 HTTP Vary 標頭,所有方案皆可使用
圖片:Mokaair (Original editorial artwork)

發生了什麼事

Cloudflare 於 2026 年 9 月 22 日發表由 Alex Krivit 與 Zaidoon Abd Al Hadi 撰寫的部落格文章,宣布已推出對 HTTP Vary 回應標頭的支援。Cloudflare 表示,這項功能現已在 Cache Rules(Cloudflare 讓網站設定如何暫存內容的規則功能)中提供,適用於所有方案。文章也引述指出,Vary 曾被稱為「the ugliest part of HTTP that we haven't yet improved.」,說明這個標頭向來難以妥善處理。

先說明幾個名詞:「標頭」是瀏覽器與伺服器每次往來時附帶的一段說明資訊;「快取」是把網頁內容暫存一份,下次有人要同樣內容時直接拿出來,不必再向網站的主機(稱為「來源伺服器」)索取;CDN 則是在各地替網站做這種暫存的服務,Cloudflare 就是其中之一。根據 Cloudflare 的說明,Vary 是標準的 HTTP 回應標頭,用來告訴中介快取(例如 Cloudflare)哪些請求欄位可能影響來源伺服器的回應。網站常用它在同一個網址提供不同語言、圖片格式、壓縮方式或地區內容。

Cloudflare 宣布 Cache Rules 支援 HTTP Vary 標頭,所有方案皆可使用
Mokaair 編輯查核流程 · 圖片:Mokaair (Original editorial artwork)
閱讀完整文字說明

消息會先蒐集來源、獨立查核,再交由 Jev 判斷。

為什麼 Vary 難以處理

Cloudflare 以範例說明兩難:若快取忽略 Vary,同一網址的 HTML(網頁)與 JSON(程式使用的資料格式)回應可能被錯誤地提供給不同客戶端,例如 API 客戶端收到網頁標記而無法解析。反過來,若快取把每個原始標頭值都視為不同,少數相似請求可能分散成數千個幾乎無法重複使用的快取項目。例如兩個 Accept-Language(瀏覽器告知偏好語言的標頭)值順序與語言標籤雖不同,但依 Cloudflare 說明,兩者實際上都偏好英文,來源伺服器可能回傳相同的英文回應,快取卻可能因原始值不同而分開儲存。

Cloudflare 指出,一個欄位 10 種值會產生 10 個版本,三個欄位各 10 種值就可能產生 1,000 種組合。這些零散的版本會佔用容量、互相把對方擠出快取(驅逐)、降低快取命中率(請求能直接由快取回應的比例),並讓更多請求回到來源伺服器。Cloudflare 引用的一項分析檢視了超過 1.2 億個回應、近 50,000 個熱門網站,發現近 3,000 個網站依據四個以上欄位變化,部分甚至達 10、23 或 47 個欄位。

Cache Rules 如何處理 Vary

Cloudflare 表示,新設計把決策拆成兩部分:來源伺服器用 Vary 指出可能影響回應的請求標頭,Cache Rule 則決定 Cloudflare 如何處理每個標頭的值。若來源伺服器未回傳 Vary,Cloudflare 會照常快取;未個別設定的標頭則套用規則的預設動作。簡單來說,三種動作分別是:把寫法不同但意思相同的標頭整理成一致(normalize)、照原樣逐字比對(passthrough),以及乾脆不存快取(bypass)。

Cloudflare Cache Rules 中處理 Vary 的三種動作(依 Cloudflare 官方說明整理)
動作Cloudflare 說明的行為Cloudflare 建議的用途
normalize先正規化請求標頭再選擇快取版本,讓等價請求共用快取;對 Accept、Accept-Language、Accept-Encoding 套用專屬規則協商類標頭(瀏覽器用來表達偏好格式、語言等的標頭)的建議起點,適合大量請求值對應少數回應的情況
passthrough以請求標頭的原始位元組比對快取,保留大小寫、空白、順序與重複值值受控、且精確值會改變回應的標頭
bypass來源在 Vary 中列出該標頭時不儲存回應;既有快取不會被移除個人化、高基數(可能值非常多,例如每位訪客都不同)或非預期的標頭

對一般讀者與網站管理者的影響

對一般網路使用者而言,這類變更通常在幕後發生。Cloudflare 表示,Vary 的作用是避免把錯誤的回應(例如錯誤格式的內容)送給使用者,而新設定的目的是在不出錯的前提下,減少零散的快取版本與回到來源伺服器的請求。對網站管理者而言,Cloudflare 表示過去處理協商內容的方法,包括略過快取、自訂快取鍵、Worker 或 Vary for images,分別有放棄快取、重複應用邏輯、需額外程式碼或只適用於較窄用途等限制,新功能則試圖填補其間的空缺。

需要注意的是,以上功能細節與效益皆來自 Cloudflare 自家部落格,屬於該公司的說法,實際效果仍取決於各網站的設定與流量型態。

常見問題

什麼是 HTTP Vary 標頭?

根據 Cloudflare 說明,Vary 是標準 HTTP 回應標頭,用來告訴中介快取哪些請求欄位可能影響來源伺服器的回應,常用於在同一網址提供不同語言、圖片格式、壓縮方式或地區內容。

這項功能哪些 Cloudflare 方案可以用?

Cloudflare 表示,Cache Rules 中的 Vary 支援適用於所有方案。

如果我的網站沒有送出 Vary 會怎樣?

Cloudflare 表示,若來源伺服器未回傳 Vary,Cloudflare 會照常快取回應。

三種動作該從哪一種開始?

Cloudflare 建議協商類標頭可從 normalize 開始;值受控且精確值會影響回應時用 passthrough;個人化、高基數或非預期的標頭則用 bypass。

這些說法經過獨立驗證了嗎?

沒有。本文資訊皆來自 Cloudflare 官方部落格,應視為該公司的說法。

查看同分類最新消息

最新旅遊情報攻略

資料來源

生活分享