ライフスタイル

Cloudflare、Cache RulesでHTTPのVaryヘッダーに対応 サイト運営者がキャッシュの分け方を決められるように、全プランで利用可能

Cloudflareは2026年9月22日、Cache RulesでHTTP Varyヘッダーをサポートすると発表した。サイト運営者は、各リクエストヘッダーがキャッシュにどう影響するかを自分で決められる。狙いは、誤ったコンテンツの配信とキャッシュ効率の低下を両方防ぐことだ。本記事では、仕組み、3つの処理アクション、利用者への影響をまとめる。

読了目安 9 分

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.」と評されたことも引用し、このヘッダーが従来から適切に扱うのが難しかったことを説明している。

Cloudflareの説明によると、Varyは標準的なHTTPレスポンスヘッダーで、中間キャッシュ(CDNなど)に対し、どのリクエストフィールドがオリジンサーバー(サイトのコンテンツを実際に持つ元のサーバー)のレスポンスに影響しうるかを伝えるものだ。Webサイトでは、同一URLで異なる言語、画像フォーマット、圧縮方式、地域向けコンテンツを提供する際によく使われる。

Cloudflare、Cache RulesでHTTPのVaryヘッダーに対応 サイト運営者がキャッシュの分け方を決められるように、全プランで利用可能
Mokaair 編集検証フロー · 画像:Mokaair (Original editorial artwork)
詳しい説明を読む

情報源を収集し、独立検証を行ってから Jev が判断します。

Varyの扱いが難しい理由

Cloudflareは例を挙げてジレンマを説明している。キャッシュがVaryを無視すると、同一URLのHTMLレスポンスとJSONレスポンスが誤って別のクライアントに配信される可能性があり、たとえばAPIクライアントがWebページのマークアップを受け取って解析できなくなる。逆に、キャッシュがヘッダーの生の値をすべて別物として扱うと、少数の似たリクエストが、ほとんど再利用されない数千のキャッシュエントリに分散しかねない。たとえば2つのAccept-Language値(ブラウザが希望する言語を伝えるヘッダー)は順序や言語タグが異なっていても、Cloudflareの説明ではどちらも実質的に英語を優先しており、オリジンサーバーは同じ英語のレスポンスを返す可能性があるが、キャッシュは生の値が異なるため別々に保存してしまう可能性がある。

Cloudflareによれば、1つのフィールドに10通りの値があれば10個のバリアント(同じURLに対して別々に保存されるレスポンス)が生まれ、3つのフィールドにそれぞれ10通りの値があれば1,000通りの組み合わせになりうる。こうした断片的なバリアントは容量を占有し、互いを追い出し合い、キャッシュヒット率(保存済みの写しで応答できた割合)を下げ、より多くのリクエストをオリジンサーバーに戻してしまう。Cloudflareが引用したある分析では、約50,000の人気サイトにおける1.2億件超のレスポンスを調べた結果、約3,000のサイトが4つ以上のフィールドに基づいてレスポンスを変えており、中には10、23、さらには47ものフィールドに及ぶものもあった。

Cache RulesはVaryをどう処理するか

Cloudflareによると、新しい設計では判断を2つに分けている。オリジンサーバーはVaryでレスポンスに影響しうるリクエストヘッダーを示し、Cache RuleはCloudflareが各ヘッダーの値をどう扱うかを決める。オリジンサーバーがVaryを返さない場合、Cloudflareは通常どおりキャッシュする。個別に設定されていないヘッダーには、ルールのデフォルトアクションが適用される。下の表で「ネゴシエーション系ヘッダー」とは、Accept、Accept-Language、Accept-Encodingのように、ブラウザなどが希望する形式・言語・圧縮方式を伝えるヘッダーを指す。また「カーディナリティが高い」とは、取りうる値の種類が非常に多いことを意味する。

Cloudflare Cache RulesにおけるVary処理の3つのアクション(Cloudflare公式の説明に基づき整理)
アクションCloudflareが説明する動作Cloudflareが推奨する用途
normalizeキャッシュバリアントを選ぶ前にリクエストヘッダーを正規化し、同等のリクエストでキャッシュを共有する。Accept、Accept-Language、Accept-Encodingには専用ルールを適用ネゴシエーション系ヘッダーの推奨される出発点。多数のリクエスト値が少数のレスポンスに対応する場合に適する
passthroughリクエストヘッダーの生のバイト列でキャッシュを照合し、大文字小文字、空白、順序、重複値を保持する値が管理されており、正確な値によってレスポンスが変わるヘッダー
bypassオリジンがVaryでそのヘッダーを挙げた場合、レスポンスを保存しない。既存のキャッシュは削除されないパーソナライズされたヘッダー、カーディナリティの高いヘッダー、想定外のヘッダー

一般読者とサイト管理者への影響

一般のインターネットユーザーにとって、この種の変更は通常は裏側で起こるものだ。適切に設定されていれば、誤った言語やフォーマットのコンテンツを受け取りにくくなり、キャッシュの再利用率が高まることでWebページもより安定する可能性がある。サイト管理者にとっては、Cloudflareによると、ネゴシエーションされるコンテンツへの従来の対処法であるキャッシュのバイパス、カスタムキャッシュキー、Worker、Vary for imagesには、それぞれキャッシュを諦める、アプリケーションロジックを重複させる、追加のコードが必要になる、より限られた用途にしか使えない、といった制約があり、新機能はその隙間を埋めることを目指している。

なお、上記の機能の詳細や効果はすべてCloudflare自社のブログによるもので、単一の情報源による主張にすぎず、実際の効果は各サイトの設定やトラフィックの傾向によって異なる。本記事は出来事の内容を整理したものであり、いかなる製品やサービスの購入を推奨するものでもない。

よくある質問

HTTP Varyヘッダーとは何ですか?

Cloudflareの説明によると、Varyは標準的なHTTPレスポンスヘッダーで、中間キャッシュに対してどのリクエストフィールドがオリジンサーバーのレスポンスに影響しうるかを伝えるものです。同一URLで異なる言語、画像フォーマット、圧縮方式、地域向けコンテンツを提供する際によく使われます。

この機能はCloudflareのどのプランで使えますか?

Cloudflareによると、Cache RulesのVaryサポートは全プランで利用できます。

自分のサイトがVaryを送信していない場合はどうなりますか?

Cloudflareによると、オリジンサーバーがVaryを返さない場合、Cloudflareは通常どおりレスポンスをキャッシュします。

3つのアクションのうち、どれから始めるべきですか?

Cloudflareは、ネゴシエーション系ヘッダーにはnormalizeから始めることを推奨しています。値が管理されていて正確な値がレスポンスに影響する場合はpassthrough、パーソナライズされたヘッダーやカーディナリティの高いヘッダー、想定外のヘッダーにはbypassを使うとしています。

これらの主張は独立して検証されていますか?

いいえ。本記事の情報はすべてCloudflare公式ブログという単一の情報源によるもので、同社の主張として扱うべきです。

このトピックの最新ニュースを見る

最新の旅の情報・ガイド

出典

ライフスタイル