すべてのプロダクト
Search
ドキュメントセンター

CDN:着信レスポンスヘッダーの設定

最終更新日:Jul 01, 2025

Alibaba Cloud CDN の配信拠点(POP)にリクエストされたリソースがキャッシュされていない場合、またはキャッシュの有効期限が切れている場合、POP はオリジンサーバーにリクエストを送信して最新のリソースを取得します。オリジンサーバーから返された HTTP メッセージのヘッダーは、オリジンレスポンスヘッダーです。着信レスポンスヘッダーを変更して、キャッシュポリシーとクロスオリジンリソースシェアリング(CORS)を設定できます。これにより、Web サイトのパフォーマンス、セキュリティ、およびユーザーエクスペリエンスが向上し、リソースへのアクセスを効果的に管理できます。

背景情報

HTTP レスポンスヘッダーは、HTTP を介して送信されるレスポンスメッセージのヘッダーセクションのコンポーネントです。 HTTP レスポンスヘッダーには、クライアントに送信される特定のパラメーターが含まれています。

リクエストされたリソースが POP にキャッシュされていない場合、リクエストはオリジンサーバーにリダイレクトされます。次に、オリジンサーバーはリクエストされたリソースを POP に返します。オリジンサーバーからの着信レスポンスヘッダーを書き換えることができます。このようにして、クライアントは応答情報を簡単に識別できます。たとえば、クライアントがオリジンサーバーから取得したコンテンツを解析できるように、Content-Type ヘッダーの値をクライアントに返す前に書き換えることができます。オリジンサーバーから返された Content-Type ヘッダーが無効な場合、文字化けが発生します。この場合、POP で Content-Type の値を書き換える必要があります。

説明
  • オリジンサーバーが POP からリクエストを受信した後、オリジンサーバーは HTTP メッセージを返します。書き換えルールは、オリジンサーバーから返されたレスポンスの HTTP ヘッダーのみを書き換えます。書き換えルールは、POP から直接返されたレスポンスの HTTP ヘッダーは書き換えません。

  • ワイルドカードドメイン名に対してカスタムの着信レスポンスヘッダーを設定することはできません。

シナリオ

  • Content-Type の値が無効: オリジンサーバーから返される Content-Type の値が実際のコンテンツの種類と一致しない場合、クライアントはコンテンツを解析できない可能性があります。たとえば、HTML ファイルがプレーンテキストとして誤ってマークされている場合は、レスポンスヘッダーを書き換えることができます。

    この例では、Content-Type: text/plainContent-Type: text/html に変更します。

  • キャッシュポリシー: 正確なキャッシュ制御を維持したい場合は、Cache-Control または Expires レスポンスヘッダーを調整できます。これにより、キャッシュされたコンテンツの更新頻度とヒット率が最適化されます。

    この例では、Cache-Control: max-age=3600Cache-Control: max-age=86400 に変更して、キャッシュの有効期間を延長します。詳細については、「デフォルトのキャッシュルールとキャッシュルールの優先順位」をご参照ください。

  • CORS: 他のドメインの Web アプリケーションが Alibaba Cloud CDN でホストされているリソースにアクセスできるようにするには、オリジンサーバーで Access-Control-Allow-Origin およびその他の関連する CORS ヘッダーを設定します。これらの設定により、クロスオリジンリクエストが開始されたときに、Alibaba Cloud CDN がクライアントに正しいレスポンスヘッダーを提供することが保証されます。詳細については、「CORS の設定」をご参照ください。

    例:

    • Access-Control-Allow-Origin: *: すべてのドメインからのアクセスが許可されます。

    • Access-Control-Allow-Methods: GET, POST, OPTIONS: クライアントが使用できる HTTP メソッドは、GET、POST、および OPTIONS です。

  • 圧縮Accept-Encoding: 圧縮がサポートされているがオリジンサーバーで無効になっている場合、または使用されている圧縮アルゴリズムが最適でない場合は、 レスポンスヘッダーを設定して、オリジンサーバーが最適な圧縮方式を使用できるようにすることができます。

    この例では、Brotli 圧縮を最初に使用するために、Accept-Encoding: gzip, deflateAccept-Encoding: br に変更します。詳細については、「Brotli 圧縮を構成する」をご参照ください。

  • リダイレクト: オリジンサーバーがリクエストを別の URL にリダイレクトする必要がある場合は、この機能を使用して正しいリダイレクトレスポンスヘッダーを設定できます。詳細については、「301/302 リダイレクトの設定」をご参照ください。

    例: Location: https://www.example.com/new-page.html。Location ヘッダーの値は、オリジンサーバーから返された HTTP ステータスコード 301 または 302 を POP が受信した後にリクエストされたリソースの新しいアドレスを指定します。

  • カスタムオリジンレスポンスヘッダー: オリジンサーバーが特別な要件のカスタム HTTP ヘッダーを返すようにするには、カスタム HTTP レスポンスヘッダーを設定できます。

使用上の注意

同じヘッダーに複数のルールが設定されている場合、ルールは設定リストの上から下へ実行されます。例:

  • 設定 1: cache-control: max-age=3600 レスポンスヘッダーを追加します。

  • 設定 2: cache-control: no-cache レスポンスヘッダーを追加します。

上記の組み合わせ設定では、設定 2 が有効になります。

手順

  1. Alibaba Cloud CDN コンソールにログインします。

  2. 左側のナビゲーションウィンドウで、ドメイン名 をクリックします。

  3. ドメイン名 ページで、管理するドメイン名を見つけ、管理 列の アクション をクリックします。

  4. ドメイン名の左側のナビゲーションツリーで、Back-to-Origin 設定 をクリックします。

  5. 受信レスポンスヘッダーの変更 タブをクリックします。

  6. 追加 をクリックします。

  7. カスタムレスポンスヘッダーダイアログボックスでパラメーターを設定します。

    重要

    同じレスポンスヘッダーに対して同時に異なる操作を実行する場合、操作の優先順位が異なります。操作の優先順位は、[置換] > [追加] > [変更] または [削除] の順に高くなります。たとえば、同じレスポンスヘッダーに対して追加操作と削除操作を同時に実行すると、レスポンスヘッダーが追加されてから削除されます。

    追加操作のパラメーター

    HTTP响应头

    パラメーター

    説明

    実行内容

    追加

    この操作は、オリジンサーバーからのレスポンスメッセージにレスポンスヘッダーを追加します。

    応答ヘッダー

    カスタムレスポンスヘッダー

    プリセットヘッダーを選択するか、[レスポンスヘッダー] ドロップダウンリストから [カスタムレスポンスヘッダー] を選択して、レスポンスヘッダーを指定できます。

    カスタム応答ヘッダー名

    x-code

    カスタムレスポンスヘッダーの名前は x-code です。

    応答ヘッダー値

    key1

    レスポンスヘッダーに複数の値を指定できます。値はカンマ(,)で区切ります。

    key1,key2

    重複の許可

    はい

    • はい: 重複するレスポンスヘッダーを追加できます。例: x-code:key1x-code:key2

    • いいえ: 最新のヘッダー値は、同じヘッダー名を使用する既存のヘッダー値を上書きします。たとえば、x-code:key1 を追加してから x-code:key2 を追加すると、x-code:key2 のみが有効になります。

    [ルール条件]

    条件を使用しない

    ルール条件は、リクエスト内のパラメーターを識別して、設定がリクエストに適用されるかどうかを判断できます。

    削除操作のパラメーター

    删除

    パラメーター

    説明

    実行内容

    削除

    この操作は、[レスポンスヘッダー] パラメーターと [ヘッダー名] パラメーターの値に一致するすべてのレスポンスヘッダーを削除します。重複するレスポンスヘッダーも削除されます。

    応答ヘッダー

    カスタムレスポンスヘッダー

    プリセットヘッダーを選択するか、[レスポンスヘッダー] ドロップダウンリストから [カスタムレスポンスヘッダー] を選択して、レスポンスヘッダーを指定できます。

    カスタム応答ヘッダー名

    x-code

    カスタムレスポンスヘッダーの名前は x-code です。

    [ルール条件]

    条件を使用しない

    ルール条件は、リクエスト内のパラメーターを識別して、設定がリクエストに適用されるかどうかを判断できます。

    変更操作のパラメーター

    变更

    パラメーター

    説明

    実行内容

    変更

    重複するレスポンスヘッダーが存在しない場合にのみ、変更操作を実行できます。

    応答ヘッダー

    カスタムレスポンスヘッダー

    プリセットヘッダーを選択するか、[レスポンスヘッダー] ドロップダウンリストから [カスタムレスポンスヘッダー] を選択して、レスポンスヘッダーを指定できます。

    カスタム応答ヘッダー名

    x-code

    カスタムレスポンスヘッダーの名前は x-code です。

    値の変更

    key1,key3

    レスポンスヘッダーに複数の値を指定できます。値はカンマ(,)で区切ります。

    [ルール条件]

    ルール条件は、リクエスト内のパラメーターを識別して、設定がリクエストに適用されるかどうかを判断できます。

    置換操作のパラメーター

    替换

    パラメーター

    説明

    実行内容

    置換

    重複するレスポンスヘッダーが存在しない場合にのみ、置換操作を実行できます。

    応答ヘッダー

    カスタムレスポンスヘッダー

    プリセットヘッダーを選択するか、[レスポンスヘッダー] ドロップダウンリストから [カスタムレスポンスヘッダー] を選択して、レスポンスヘッダーを指定できます。

    カスタム応答ヘッダー名

    x-code

    カスタムレスポンスヘッダーの名前は x-code です。

    検索

    key

    正規表現を使用して、置換する値を検索できます。

    書き換え後

    abc

    正規表現を使用して、一致する値を置換できます。

    一致

    すべて一致

    • すべてマッチ: 一致するすべての値が置換されます。たとえば、正規表現を使用して x-code:key1,key2,key3 内のすべての「key」という文字列を abc に置換すると、キーと値のペアは x-code:abc1,abc2,abc3 に変更されます。

    • 最初のみマッチ: 最初に一致する値のみが置換されます。たとえば、正規表現を使用して x-code:key1,key2,key3 内の最初の「key」という文字列を abc に置換すると、キーと値のペアは x-code:abc1,key2,key3 に変更されます。

    [ルール条件]

    ルール条件は、リクエスト内のパラメーターを識別して、設定がリクエストに適用されるかどうかを判断できます。

  8. OK をクリックします。

デフォルトのプリセットレスポンスヘッダー

デフォルトでは、Alibaba Cloud CDN は Cache-Control、Content-Type、Expires、Last-Modified のレスポンスヘッダーを提供します。これらのレスポンスヘッダーは、キャッシュの制御、コンテンツタイプの定義、キャッシュの有効期限の指定、リソースの最終変更時刻の記録に使用される HTTP プロトコルの重要なコンポーネントです。

Alibaba Cloud CDN のプリセットレスポンスヘッダー

説明

Cache-Control

POP およびクライアントブラウザーでリソースをキャッシュする方法と期間を指定します。このレスポンスヘッダーは、Expires よりも優先順位が高くなります。

  • Cache-Control: no-cache は、キャッシュされたコンテンツを使用する前に、すべてのリクエストをオリジンサーバーに送信して検証することを強制します。

  • Cache-Control: max-age=3600 は、キャッシュされたコンテンツが 3,600 秒(1 時間)間有効であり、POP から直接提供できることを示します。

Content-Type

クライアントに返されるリソースのデータ型を記述します。このレスポンスヘッダーは、クライアントが受信したリソースを正しく解釈して表示するのに役立ち、後続のデータ処理と送信を容易にします。

  • Content-Type: text/html は、返されるコンテンツが HTML フォーマットであることを示します。

  • Content-Type: image/jpeg は、リソースが JPEG フォーマットであることを示します。

Expires

キャッシュされたコンテンツの有効期限が切れる正確な日付または時刻を指定します。コンテンツの有効期限が切れると、POP はオリジンサーバーから更新されたリソースをすぐにリクエストします。Expires ヘッダーと比較して、HTTP/1.1 で導入された Cache-Control は、よりきめ細かい制御を提供するため、ユーザーに好まれています。

Expires: Thu, 01 Dec 2023 16:00:00 GMT は、コンテンツが指定された時間の後に有効期限切れになることを示します。

Last-Modified

リソースが最後に変更された時刻を指定します。Alibaba Cloud CDN およびブラウザーは、このレスポンスヘッダーを使用して、前回のキャッシュ以降にリソースが変更されたかどうかを判断します。

Last-Modified: Wed, 21 Oct 2023 07:28:00 GMT は、リソースが最後に変更された時刻を示します。

例 1: ユーザーに返されるコンテンツが MIME タイプであることを指定する

サンプルシナリオ

レスポンスヘッダーを追加して、ユーザーに返されるコンテンツが指定された MIME タイプであることを指定します。

説明

MIME コンテンツには次のタイプが含まれます。

  • テキスト: .txt や .csv ファイルなどのテキストファイル、および .html、.htm、.shtml ファイルなどの HTML ファイルが含まれます。

  • 画像: .jpg、.png、.gif ファイルなどの一般的な画像ファイルが含まれます。

  • オーディオ: .mp3 や .wav ファイルなどのオーディオファイルが含まれます。

  • ビデオ: .mp4 や .avi ファイルなどのビデオファイルが含まれます。

  • アプリケーション: .pdf、.doc、.xls ファイルなどのアプリケーションファイルが含まれます。

設定

  • 操作: 追加

  • レスポンスヘッダー: Content-Type

  • ヘッダー値: text/html

配置

期待される結果: オリジンサーバーは、値が text/html である Content-Type ヘッダーを POP に返されるレスポンスに追加します。設定が更新されると、値は上書きされます。

例 2: レスポンスヘッダーを削除する

サンプルシナリオ

レスポンスからレスポンスヘッダーを削除します。

設定

  • 操作: 削除

  • レスポンスヘッダー: Content-Type

配置

期待される結果: Content-Type ヘッダーは、ユーザーに返される前にレスポンスから削除されます。

説明

例 1 の追加操作と例 2 の削除操作を実行すると、値が text/html である Content-Type ヘッダーがレスポンスに追加されてから削除されます。その結果、ユーザーに返されるコンテンツは、指定された MIME タイプではなく元のタイプになります。

FAQ

レスポンスヘッダーを設定したにもかかわらず、CORS 問題が報告され、Access-Control-Allow-Origin レスポンスヘッダーが返されないのはなぜですか?

考えられる原因

  1. 誤った設定: 設定が間違っているか、有効になっていません。

  2. POP キャッシュ: POP キャッシュが返されますが、キャッシュには追加した新しいレスポンスヘッダーが含まれていません。

  3. オリジンサーバー: Alibaba Cloud CDN コンソールで設定した CORS レスポンスヘッダーが、オリジンサーバーから返されるレスポンスヘッダーと競合している可能性があります。この場合、CDN とオリジンサーバー間のレスポンスヘッダーの設定が同じであることを確認する必要があります。

  4. ブラウザーキャッシュ: ブラウザーによってキャッシュされたレスポンスの有効期限がすでに切れています。

解決策

  1. 設定を確認する: CDN の設定、特に CORS レスポンスヘッダーが正しく有効になっていることを確認します。

  2. CDN キャッシュをクリアする: Alibaba Cloud CDN のリフレッシュ機能を使用してキャッシュされたコンテンツをクリアしてから、リソースに再度アクセスできます。詳細については、「リソースのパージとプリフェッチ」をご参照ください。

  3. オリジンサーバーの設定を確認する: オリジンサーバーから返されるレスポンスヘッダーが、Alibaba Cloud CDN コンソールで設定したヘッダーと競合していないことを確認します。オリジンサーバーから返されるレスポンスヘッダーを POP から返されるヘッダーと同じに設定することをお勧めします。

  4. ブラウザーキャッシュをクリアする: ブラウザーキャッシュをクリアするか、プライベートブラウジングモードを使用して、ブラウザーが更新されたレスポンスヘッダーを取得するようにします。

  5. テクニカルサポートに連絡する: 問題が解決しない場合は、Alibaba Cloud CDN テクニカルサポートに連絡するか、チケットを送信してください。

オリジン応答ヘッダー ( Access-Control-Allow-Origin など) を正しく追加したことを確認するにはどうすればよいですか?

オリジンサーバーが ECS インスタンスの場合

確認するには、次の手順を実行します。

  1. ECS コンソール にログインして、ECS インスタンスにアクセスします。

  2. Web サーバーの CORS 構成を確認します。

    CORS 応答ヘッダーの構成は、Web サーバーまたはアプリケーションによって異なる場合があります。次の例は、一般的な Web サーバー Apache および NGINX の CORS 構成を確認する方法を示しています。

    Apache

    .htaccess ファイル、または httpd.confvhosts.conf などのサーバー構成ファイルで、次の設定と同様の内容を検索します。

    Header set Access-Control-Allow-Origin "*"

    特定のドメイン名の CORS 構成を確認することもできます。

    Header set Access-Control-Allow-Origin "http://example.com"

    これらの構成が存在し、正しく設定されていることを確認します。

    Nginx

    /etc/nginx/nginx.conf または /etc/nginx/sites-available/default などの NGINX 構成ファイルで、アプリケーションに関連する server ブロックを見つけ、次の構成を確認します。

    location / {
    	add_header 'Access-Control-Allow-Origin' '*';
    }

    特定のドメイン名の CORS 構成を確認することもできます。

    location / {
    	add_header 'Access-Control-Allow-Origin' 'http://example.com';
    }

    これらの構成が存在し、正しく設定されていることを確認します。

  3. Web サーバーを再起動します。

    前の手順で構成ファイルを変更した場合は、変更を有効にするために Web サーバーを再起動します。たとえば、次のコマンドを使用して Apache または NGINX のサーバーを再起動できます。

    • Apache:

      sudo service apache2 restart
    • NGINX:

      sudo service nginx restart
  4. Web ブラウザーを使用して、新しい応答ヘッダーを確認します。

    Web ブラウザーの DevTools の [ネットワーク] タブで、リソースにアクセスし、Access-Control-Allow-Origin ヘッダーが応答に含まれているかどうかを確認します。応答に含まれていない場合は、構成が有効になっていないか、キャッシュされた応答が更新されていません。

オリジンサーバーが OSS バケットの場合

Alibaba Cloud Object Storage Service (OSS) は CORS をサポートしています。Access-Control-Allow-Origin などの応答ヘッダーが OSS コンソールで正しく設定されているかどうかを確認するには、次の手順を実行します。

  1. OSS コンソール にログインします。

  2. 左側のナビゲーションウィンドウで、バケットリスト をクリックします。[バケット] ページで、目的のバケットを見つけてクリックします。

  3. 左側のナビゲーションツリーで、コンテンツセキュリティ > クロスオリジンリソース共有の設定 を選択します。

  4. CORS ルールリストで、Access-Control-Allow-Origin ヘッダーが含まれているかどうか、および設定が正しいかどうかを確認します。

    • OSS バケットがすべてのソースからのアクセスを許可するようにするには、Access-Control-Allow-Origin* に設定します。

    • OSS バケットが特定のソースからのアクセスのみを許可するようにするには、Access-Control-Allow-Origin を特定のソースのアドレス ( https://yourdomain.com など) に設定します。

  5. 他の CORS ヘッダーを確認します。

    Access-Control-Allow-Origin に加えて、次の CORS ヘッダーが正しく構成されているかどうかを確認する必要がある場合もあります。

    • Access-Control-Allow-Methods: GETPOSTPUTDELETE などの許可される HTTP メソッドを指定します。

    • Access-Control-Allow-Headers: リクエストに標準以外のヘッダーフィールドが含まれている場合に許可されるカスタムリクエストヘッダーを指定します。

    • Access-Control-Max-Age: プリフライトリクエスト (OPTIONS) の結果をキャッシュできる期間を指定します。

  6. 設定を保存します。

    設定が正しくないか、更新が必要な場合は、画面の指示に従って設定を変更し、変更を保存します。その後、変更が有効になるまでしばらく待ちます。

詳細については、「CORS」をご参照ください。

問題が解決しない場合、またはトラブルシューティング中に新しい問題が発生した場合は、Alibaba Cloud CDN テクニカルサポートに連絡するか、チケットを送信してください。