出力レスポンスヘッダーは、クライアントのキャッシュ動作を制御するパラメーターを含む HTTP レスポンスコンポーネントです。これらのヘッダーを変更することで、CDN は、ご利用の高速化ドメイン名に対するリクエストへの応答に、構成済みのヘッダーを含めます。これにより、オリジン間リソース共有 (CORS) などの機能を実装できます。
背景情報
出力レスポンスヘッダーは、キャッシュを制御するための HTTP プロトコルメカニズムです。クライアントがリソースをリクエストすると、CDN の POP (Point of Presence) から送信される HTTP レスポンスヘッダーにより、クライアントは特定の条件のもとでコンテンツをキャッシュできます。
HTTP レスポンスヘッダーの構成はドメイン単位で行われます。この構成は、ドメイン名配下のすべてのリソースに対する応答に適用されます。
HTTP レスポンスヘッダーの構成は、ブラウザなどのクライアントの動作にのみ影響します。CDN の POP のキャッシュ動作には影響しません。この機能はワイルドカードドメイン名ではサポートされていません。
利用シーン
クライアントに通知するCDN応答ファイルのリソースタイプを:レスポンスヘッダー
Content-Type: text/htmlを追加して、CDN の応答ファイルが HTML フォーマットであることをクライアントに通知します。クロスオリジンリソースアクセスを有効化:ユーザーが CDN 上のドメイン名からリソースをリクエストする場合、CDN が返す応答に
Access-Control-Allow-Originレスポンスヘッダーを構成することで、クロスオリジンアクセスを有効化できます。詳細については、「オリジン間リソース共有 (CORS) の設定」をご参照ください。Alibaba Cloud CDN は、構成済みの CORS ルールに基づいて受信したクロスオリジンリクエストを検証し、より柔軟なクロスオリジンリソースアクセス制御を実現することもサポートしています。応答動作のカスタマイズ:ビジネス要件に応じて、カスタムヘッダーを追加または変更して、クライアントへの応答の内容や形式を調整します。
ルールの実行順序
複数のルールが同じヘッダーを対象とする場合、ルールは上から下へ順に適用され、最後に一致したルールが有効になります。
例:
ルール | 操作 | ヘッダー | 値 | 結果 |
ルール 1 | Add |
|
| 最初に適用 |
ルール 2 | Add |
|
| 次に適用され、有効になる |
結果: cache-control: no-cache
操作手順
-
CDN コンソールにログインします。
-
左側のナビゲーションウィンドウで、ドメイン名 をクリックします。
-
[ドメイン名] ページで、対象のドメイン名を見つけ、[管理] を [操作] 列でクリックします。
-
ドメインのナビゲーションウィンドウで、キャッシュ設定 をクリックします。
[POP HTTP レスポンスヘッダー] タブをクリックします。
追加 をクリックして、出力レスポンスヘッダーを変更します。
以下の例は、出力レスポンスヘッダーを追加する方法を示しています。
パラメーター
説明
実行内容
指定されたレスポンスヘッダーに対して実行する操作です。「追加」「削除」「変更」「置換」を選択できます。
応答ヘッダー
レスポンスヘッダーパラメーターを選択します。詳細については、「レスポンスヘッダーパラメーター」をご参照ください。
カスタム応答ヘッダー名
このパラメーターは、レスポンスヘッダーパラメーターで カスタム を選択した場合にのみ使用できます。カスタムヘッダー名は次の要件を満たす必要があります。
英数字およびハイフン (-) を使用できます。
長さは 1~100 文字です。
応答ヘッダー値
レスポンスヘッダーの値を入力します。詳細については、「レスポンスヘッダーパラメーター」をご参照ください。
重複の許可
はい:ソースサーバーからのヘッダーを保持し、同じ名前の新しいヘッダーを追加します。
いいえ:ソースサーバーからのヘッダーは、同じ名前で新たに構成されたヘッダーによって上書きされます。
CORS
CORS 検証は、デフォルトで無効になっています。このパラメーターは、実行内容 が 追加 に設定され、かつ 応答ヘッダー が Access-Control-Allow-Origin に設定されている場合にのみ設定できます。
有効化:有効にすると、POP はクロスオリジンリクエストを構成済みのルールに対して検証し、検証結果に基づいて
Access-Control-Allow-Origin値を応答に含めます。無効:CORS 検証を無効にすると、POP はクライアントリクエスト内の Origin ヘッダーを検証しません。POP は構成済みの Access-Control-Allow-Origin 値のみを応答に含めます。
CORS 検証ルールの詳細については、「CORS 検証ルール」をご参照ください。
ルール条件
ルール条件は、リクエスト内のさまざまなパラメーターを評価することで、構成がそのリクエストに適用されるかどうかを決定します。
重要機能がルールエンジンで構成されたルール条件を参照する場合、実行順序は機能構成の順序ではなく、関連付けられたルール条件の優先度に従います。
条件を使用しない:条件付きルールを無効にします。
ルールエンジンで条件付きルールを追加または編集できます。
OK をクリックして構成を保存します。
出力レスポンスヘッダーを変更すると、現在の構成が ノード HTTP レスポンスヘッダー リストに表示されます。リストから 変更 または 削除 をクリックして、構成を管理できます。
CORS 検証ルール
重複の許可 設定と CORS 設定は相互排他です。重複の許可 が はい に設定されている場合、CORS 検証は無効になります。
ワイルドカード一致:カスタムレスポンスヘッダー
Access-Control-Allow-Originが*に設定されている場合、リクエストにOriginヘッダーが含まれているかどうか、またはOriginヘッダーの値が何であれ、サーバーは常にAccess-Control-Allow-Origin:*を返します。完全一致:
Access-Control-Allow-Originレスポンスヘッダーパラメーターの値が単一の値、またはカンマ (,) で区切られた複数の値に設定されています。クライアントリクエストの
Originヘッダーが構成済みの値のいずれかと完全に一致する場合、応答には対応する CORS ヘッダーが含まれます。完全一致する値が見つからない場合、応答には CORS ヘッダーが含まれません。
ワイルドカードドメイン名一致:
Access-Control-Allow-Originレスポンスヘッダーパラメーターの値がワイルドカードドメイン名に設定されている場合、POP はクライアントリクエストヘッダー内の Origin 値が、Access-Control-Allow-Originに指定されたワイルドカードドメイン名と一致するかどうかを検証します。
これらのルールの構成方法の詳細については、「CORS の設定」をご参照ください。
レスポンスヘッダーパラメーター
パラメーター | 説明 | 例 |
カスタム | カスタムレスポンスヘッダーをサポートします。カスタムヘッダー名は次の要件を満たす必要があります。
| Test-Header |
Cache-Control | クライアントのリクエストおよび応答が従う必要のあるキャッシュ機構を指定します。 | no-cache |
Content-Disposition | クライアントがリクエストされたコンテンツをファイルとして保存する際のデフォルトファイル名を指定します。 | examplefile.txt |
Content-Type | クライアント向けの応答オブジェクトのコンテンツタイプを指定します。 | text/plain |
Pragma | HTTP/1.0 で定義された汎用ヘッダーです。通常、サーバーの応答でクライアント側のキャッシュ動作を定義するために使用されます。 | no-cache |
Access-Control-Allow-Origin | HTTP 応答の
|
|
Access-Control-Allow-Methods | クロスオリジンリクエストで許可されるメソッドを指定します。複数のメソッドをカンマ ( | POST,GET |
Access-Control-Allow-Headers | クロスオリジンリクエストで許可されるヘッダーを指定します。 | X-Custom-Header |
Access-Control-Expose-Headers | クライアントがアクセスできるカスタムヘッダーを指定します。 | Content-Length |
Access-Control-Allow-Credentials | ブラウザが応答をクライアントサイドスクリプトに公開できるかどうかを指定します。
| true |
Access-Control-Max-Age | 特定のリソースに対するプレフライトリクエスト結果のキャッシュ期間を秒単位で指定します。 | 600 |
レスポンスヘッダー値を "*" に設定すると、任意のオリジンを示します。
レスポンスヘッダー値が "*" でない場合、1 つ以上の IP アドレスまたはドメイン名を指定できます。それらはカンマ (,) で区切ります。
レスポンスヘッダー値が "*" でない場合、値は "http://" または "https://" で始まる必要があります。
レスポンスヘッダー値にポート番号を含めることができます。
ワイルドカードドメイン名をレスポンスヘッダー値として使用できます。