送信レスポンスヘッダーは、HTTP を介して送信されるレスポンスメッセージのヘッダーセクションのコンポーネントです。 HTTP レスポンスヘッダーは、キャッシュを管理するための特定のパラメーターをクライアントに配信します。 送信レスポンスヘッダーを設定し、Alibaba Cloud CDN が設定済みのレスポンスヘッダーを返すようにすることができます。 このようにして、クロスオリジンリソースシェアリング(CORS)などの特定の機能を実装できます。
背景情報
HTTP レスポンスヘッダーを使用して、HTTP を介して送信されるコンテンツのキャッシュを管理できます。 クライアントがリソースをリクエストすると、CDN プレゼンスポイント(POP)はクライアントに HTTP レスポンスヘッダーを返します。これにより、クライアントと POP は特定の条件下でレスポンスをキャッシュできます。
送信レスポンスヘッダーの構成はドメイン名に適用されます。 ドメイン名宛てのすべてのリクエストへのレスポンスに対して有効になります。
送信レスポンスヘッダーは、ブラウザなどのクライアントのレスポンス動作にのみ影響します。 CDN POP のキャッシュ動作には影響しません。
シナリオ
CDN が返すリソースのタイプをクライアントに通知します。 たとえば、
Content-Type: text/htmlレスポンスヘッダーを追加して、CDN から返されるファイルが HTML 形式であることをクライアントに通知できます。CORS を有効にします。 ユーザーが CDN によって高速化されているドメイン名のリソースをリクエストする場合、レスポンスに
Access-Control-Allow-Originヘッダーを追加して CORS を有効にできます。 詳細については、「CORS を設定する」をご参照ください。さらに、CDN では、カスタム CORS ルールに基づいてクロスオリジンリクエストの認証を有効にし、CORS のアクセス制御を調整できます。
カスタムレスポンス動作を設定します。 カスタムヘッダーを追加または変更して、クライアントに返されるレスポンスメッセージのコンテンツと形式を変更できます。 これにより、特定の機能を実装したり、レスポンスを追跡したりできます。
使用上の注意
同じヘッダーに複数のルールが設定されている場合、ルールは設定リストの上から下に実行されます。 例:
構成 1:
cache-control: max-age=3600レスポンスヘッダーを追加します。構成 2:
cache-control: no-cacheレスポンスヘッダーを追加します。
上記の組み合わせ構成では、構成 2 が有効になります。
手順
Alibaba Cloud CDN コンソールにログインします。
左側のナビゲーションウィンドウで、ドメイン名 をクリックします。
ドメイン名 ページで、管理するドメイン名を見つけ、管理 列の 操作 をクリックします。
ドメイン名の左側のナビゲーションツリーで、キャッシュ設定 をクリックします。
ノード HTTP レスポンスヘッダー タブをクリックします。
追加 をクリックします。
設定が必要なパラメータは次のとおりです。
実行内容
特定のレスポンスヘッダーを追加、削除、変更、または置き換えることができます。
応答ヘッダー
レスポンスヘッダーを選択します。詳細については、「レスポンスヘッダー」をご参照ください。
カスタム応答ヘッダー名
[カスタム] にレスポンスヘッダーパラメータを設定する場合は、次のルールに基づいてヘッダー名を指定する必要があります。
名前には、文字、アンダースコア(_)、および数字を含めることができます。
名前の長さは 1 ~ 100 文字である必要があります。
応答ヘッダー値
ヘッダー値を指定します。詳細については、「レスポンスヘッダー」をご参照ください。
重複の許可
はい: 重複するヘッダーが許可されます。Alibaba Cloud CDN コンソールに追加され、オリジンサーバーから返されるすべての重複ヘッダーが保持されます。
いいえ: 重複するヘッダーは許可されません。Alibaba Cloud CDN コンソールに追加されたヘッダーは、オリジンサーバーから返された重複ヘッダーを上書きします。
CORS
デフォルトでは、CORS は無効になっています。実行内容 パラメータを [追加] に、応答ヘッダー パラメータを
Access-Control-Allow-Originに設定した場合にのみ、CORS を設定できます。有効: CORS を有効にすると、POP は CORS ルールに基づいてユーザーリクエストの Origin ヘッダーを確認し、
Access-Control-Allow-Originヘッダーの値を指定します。無効: CORS を無効にすると、POP はユーザーリクエストの Origin ヘッダーを確認しません。この場合、POP は設定された
Access-Control-Allow-Originヘッダーの値を返します。
詳細については、「CORS ルール」をご参照ください。
ルール条件
ルール条件は、リクエスト内のパラメータを識別して、設定がリクエストに適用されるかどうかを判断できます。
条件を使用しない
ルール条件を追加または編集する場合は、「ルールエンジン」をご参照ください。
OK をクリックします。
HTTP 応答ヘッダーを構成すると、HTTP 応答ヘッダーは ノード HTTP レスポンスヘッダー タブに表示されます。変更 または 削除 を [操作] 列でクリックして、ヘッダーを変更または削除できます。
CORS ルール
重複の許可 設定と [CORS] 設定は相互に排他的です。 重複の許可 パラメーターを はい に設定すると、CORS の設定は無効になります。
ワイルドカードパターンマッチ:
Access-Control-Allow-Originヘッダーをアスタリスク(*)に設定すると、ユーザーリクエストにOriginヘッダーが含まれているかどうかに関係なく、Access-Control-Allow-Origin:*が返されます。またはOriginヘッダーが設定されている値。完全一致:
Access-Control-Allow-Originヘッダーに 1 つ以上の値を指定できます。 値はカンマ(,)で区切ります。ユーザーリクエストの
Originヘッダーの値がAccess-Control-Allow-Originヘッダーの値と一致する場合、Access-Control-Allow-Originヘッダーの一致する値が返されます。ユーザーリクエストの
Originヘッダーの値がAccess-Control-Allow-Originの値と一致しない場合、Access-Control-Allow-Originヘッダーは返されません。
ワイルドカードドメイン名の一致:
Access-Control-Allow-Originヘッダーをワイルドカードドメイン名に設定すると、Originヘッダーの値がワイルドカードドメイン名と照合されます。
詳細については、「CORS を設定する」をご参照ください。
レスポンスヘッダー
以下は、レスポンスヘッダーの説明です。
カスタム
説明:ビジネス要件に基づいてカスタムレスポンスヘッダーを作成できます。 次のルールに基づいて、レスポンスヘッダーの名前を指定する必要があります。
名前には、文字、アンダースコア(_)、数字を含めることができます。
名前の長さは 1 ~ 100 文字である必要があります。
例:Test-Header
Cache-Control
説明:リクエストとレスポンスが従うキャッシュルール。
例:no-cache
Content-Disposition
説明:取得したコンテンツをクライアントにファイルとして保存するときに使用されるデフォルトのファイル名。
例:examplefile.txt
Content-Type
説明:クライアントに返されるリソースのメディアタイプ。
例:text/plain
Pragma
説明:Pragma は、サーバーレスポンスでキャッシュ制御ディレクティブを伝送するために使用される HTTP/ 1.0 汎用タイプのヘッダーです。
例:no-cache
Access-Control-Allow-Origin
説明:
Access-Control-Allow-Originは、どのオリジンがリソースにアクセスできるかを示すために使用される HTTP レスポンスヘッダーです。Access-Control-Allow-Originは CORS メカニズムの一部であり、サーバーはリソースに指定されたオリジン(ドメイン名)からアクセスできるかどうかを宣言できます。 以下のタイプの値がサポートされています。ワイルドカード(
*):任意のオリジンがリソースにアクセスできることを示します。 この方法は、アクセスに認証や承認を必要としないパブリックリソースに適用されます。 ただし、運用環境でワイルドカードを使用すると、クロスサイトリクエストフォージェリ(CSRF)などのセキュリティリスクが発生する可能性があります。 注意して進めてください。指定されたオリジン:オリジン(ドメイン名)を指定して、この指定されたオリジンのみがリソースにアクセスできるようにすることができます。 たとえば、
http://example.comまたはhttps://api.example.comを指定します。 この場合、リクエストは指定されたオリジンから送信する必要があります。 その他のリクエストは拒否されます。
例:
*
http://www.alibabacloud.com
Access-Control-Allow-Methods
説明:クロスオリジンリクエストで使用できるリクエストメソッド。 1 つ以上のリクエストメソッドを指定できます。 リクエストメソッドはカンマ(,)で区切ります。
例:POST, GET
Access-Control-Allow-Headers
説明:クロスオリジンリクエストで使用できるヘッダーフィールド。
例:X-Custom-Header
Access-Control-Expose-Headers
説明:レスポンスの一部として公開できるヘッダー。
例:Content-Length
Access-Control-Allow-Credentials
説明:
ブラウザがフロントエンドページへのレスポンスを公開できるかどうかを指定します。
true:ブラウザはフロントエンドページへのレスポンスを公開できます。
その他の値:ブラウザはフロントエンドページへのレスポンスを公開できません。
例:true
Access-Control-Max-Age
説明:プリフライトリクエストの結果をキャッシュできる期間。 単位:秒。
例:600
ヘッダーをアスタリスク(*)に設定して、すべてのオリジンと一致させることができます。
1 つ以上の IP アドレス、ドメイン名、または IP アドレスとドメイン名の組み合わせを設定できます。 複数の値はカンマ(,)で区切ります。
ヘッダーのワイルドカード文字としてアスタリスク(*)を使用しない場合、値は http:// または https:// で始まる必要があります。
ポート番号がサポートされています。
ワイルドカードドメイン名がサポートされています。