EdgeOneのVary対応状況
EdgeOneはVary機能をサポートしています。現在はデフォルトで無効になっています。有効にするには、ルールエンジンで設定できます。有効にした後、オリジンサーバーがファイルを応答する際に、必要に応じてレスポンスヘッダーにVaryヘッダーを追加します。Varyヘッダーの標準については、Varyを参照してください。 説明:
お客様のドメインが2024-06-13 00:00:00より前に作成された場合、すべてデフォルトでVary機能のサポートが有効になっています。
Vary特性とは何ですか?
VaryはHTTP/1.1以降に追加されたHTTPレスポンスヘッダーです。クライアントが同じURLを使用してオリジンサーバーにリクエストを送信する際、オリジンサーバーに異なるバージョンのファイルコンテンツが存在する場合、中間キャッシュシステム(例えば、ブラウザキャッシュ、CDN)にキャッシュされ、シーンに応じたレスポンスファイルを区別できない可能性があります。そのため、オリジンサーバーはHTTPレスポンスにVaryヘッダーを追加することで、中間キャッシュシステムにどのリクエストヘッダーでキャッシュバージョンを区別するかを通知できます。
例えば、クライアントのリクエストがすべてhttps://www.example.com/test.pdfである場合、オリジンサーバーではクライアントの言語を区別して異なるバージョンのファイルを応答するために、HTTPレスポンスヘッダーにVary: Accept-Languageを追加します。EdgeOneはキャッシュを確立する際に、クライアントがリクエストしたAccept-Languageの内容に基づいて異なるバージョンのキャッシュを確立します。
ユーザーAがリクエストURLをhttps://www.example.com/test.pdfとして送信し、リクエストヘッダーAccept-Language:zh-cnを付与した場合、EdgeOneはファイルAを応答します。
ユーザーBがリクエストURLをhttps://www.example.com/test.pdfとして送信し、リクエストヘッダーAccept-Language:en-USを付与した場合、EdgeOneはファイルBを応答します。
Varyの適用シーン
Varyヘッダーを柔軟に使用することで、オリジンサーバーのレスポンスによって、どのファイルが指定されたHTTPリクエストヘッダーに基づいてキャッシュを区別する必要があるかを制御できます。これにより、以下のシナリオの問題を解決できます。
シーン1:URLが同じで、クライアントタイプに応じて応答ファイルを区別
現在のウェブサイトがPC版とモバイル版のページを同時に持つ場合、ユーザーのアクセスを容易にするために、ウェブサイトのPC版とモバイル版のリソースはすべて同じURLでアクセスされます。しかし、画面解像度の違いにより、フロントエンドがコンテンツをモバイル版に適応させるため、画像の解像度サイズは一致しません。この場合、ユーザーがリクエスト時に送信するUser-Agentヘッダーに基づいて、PC版に適応する画像Aとモバイル版に適応する画像Bを区別して応答する必要があります。応答した画像コンテンツがキャッシュされ、モバイル版でアクセスするコンテンツがPC版のコンテンツと同一になることを避けるために、オリジンサーバーは画像応答時にVary:User-Agentを追加して、ノードがユーザーリクエストのUser-Agentヘッダーに基づいてキャッシュを区別するように指定できます。
シーン2:URLが同じで、アクセス元に応じてCORSヘッダーを応答
現在のページ内に同じ画像ファイルがドメインAとドメインBの両方から参照されている場合、クロスドメインエラーを回避するために、通常はオリジンサーバーがファイル応答時にAccess-Control-Allow-Originを追加してクロスドメインアクセスを許可する必要があります。しかし、現在のファイルがキャッシュされている場合、クロスドメインヘッダーも一緒にキャッシュされ、クロスドメインアクセスエラーが発生する可能性があります。この場合、オリジンサーバーはAccess-Control-Allow-Originクロスドメインヘッダーを応答すると同時に、Vary:originヘッダーを追加して、ノードがユーザーリクエストのOriginヘッダーに基づいてキャッシュを区別するように指定できます。
操作手順
お客様のビジネスドメインがwww.example.comであり、オリジンサーバーがVary: Originを応答する場合、EdgeOneがOriginの異なる値に基づいてキャッシュを区別することを希望される場合は、以下の手順を参照して設定できます:
1. EdgeOneコンソールにログインし、左側のメニューバーで「サービス概要」に入り、「SCDN」内で設定が必要なサイトをクリックします。
2. サイト詳細ページで「サイト加速」>「ルールエンジン」をクリックし、ルールエンジンページに入ります。
3. ルールエンジンページで「ルールを作成」をクリックし、「新しい空白のルールを追加」を選択します。
4. ルール編集ページで、マッチングタイプとしてHOSTがwww.example.comに等しいことを選択します。
5. 「操作」>「選択ボックス」をクリックし、表示される操作リスト内で操作として「Vary 特性」を選択し、スイッチをクリックしてVary 特性を有効にします。
6. 「保存して公開」をクリックすると、このルールの設定が完了します。