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

CDN:オリジンレスポンスヘッダーの変更

最終更新日:Sep 01, 2026

ポイントオブプレゼンス (POP) のキャッシュが期限切れになった場合、またはキャッシュミスが発生した場合、POP はオリジンサーバーに最新のコンテンツを要求します。オリジンサーバーから返されるコンテンツと HTTP ヘッダーは、オリジンレスポンスヘッダーと呼ばれます。オリジンサーバーでこれらのヘッダーを変更して、キャッシュポリシーの定義やオリジン間リソース共有 (CORS) の設定などを行うことができます。これにより、Web サイトの読み込み速度の最適化、コンテンツのセキュリティ強化、リソースのアクセシビリティ制御、ユーザーエクスペリエンスの向上が可能になります。

背景情報

HTTP レスポンスヘッダーは、特定のパラメーターをクライアントに伝達する HTTP レスポンスのコンポーネントです。

エンドユーザーからリクエストされたコンテンツが CDN ノードにキャッシュされていない場合、CDN はオリジンフェッチを実行し、オリジンサーバーがレスポンスを送信します。このオリジンレスポンス内の HTTP ヘッダーを変更できます。たとえば、クライアントに渡される前に Content-Type ヘッダーの値を書き換えることで、クライアントで適切に解析されるようにすることができます。オリジンサーバーが不正な Content-Type の値を返した場合、クライアントはコンテンツを正しく解析できない可能性があります。この問題は、CDN 上でヘッダーを書き換えることで解決できます。

image
説明
  • オリジンレスポンスは、オリジンサーバーが CDN ノードに送信する HTTP メッセージです。この機能でオリジンレスポンスヘッダーを変更すると、CDN ノードが受信したヘッダーが書き換えられます。この変更されたヘッダーは、CDN のキャッシュ動作や、CDN ノードがエンドユーザーに提供するレスポンスに影響します。

  • ワイルドカードドメインのオリジンレスポンスヘッダーは変更できません。

ユースケース

一般的なユースケースと例を次に示します。

  • 不正な Content-Type:オリジンサーバーから返されたコンテントタイプ (Content-Type) が実際のコンテンツと一致しない場合、クライアントはそれを正しく解析できない可能性があります。たとえば、HTML ファイルが誤ってプレーンテキストとしてマークされることがあります。この問題は、オリジンレスポンスヘッダーを設定することで解決できます。

    例:Content-Type: text/plain を Content-Type: text/html に変更します。

  • キャッシュポリシーの制御:CDN のキャッシュポリシーをきめ細かく制御する必要がある場合は、オリジンサーバーのレスポンスヘッダーの Cache-Control または Expires フィールドを調整できます。これにより、コンテンツの更新頻度とキャッシュヒット率を最適化できます。

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

  • オリジン間リソース共有 (CORS):他のドメインの Web アプリケーションに CDN でホストされているリソースへのアクセスを許可する場合は、オリジンサーバーで Access-Control-Allow-Origin ヘッダーおよびその他の関連する CORS ヘッダーを設定する必要があります。これらの設定により、ブラウザーがオリジン間リクエストを実行する際に、CDN がクライアントに適切なレスポンスヘッダーを提供して CORS エラーを防ぐことができます。オリジン間アクセスの問題に関する詳細については、「オリジン間リソース共有 (CORS) の設定」をご参照ください。

    例:

    • Access-Control-Allow-Origin: *:すべてのドメインからのオリジン間リソースリクエストを許可します。

    • Access-Control-Allow-Methods: GET, POST, OPTIONS:オリジン間リクエストで許可される HTTP メソッドを指定します。

  • 圧縮転送:オリジンサーバーが圧縮されたコンテンツを返すものの、正しい Content-Encoding ヘッダーを送信しない場合があります。これにより、ブラウザがコンテンツを正しく解凍できなくなります。オリジンレスポンスヘッダーを変更して Content-Encoding ヘッダーを追加または修正することで、この問題を解決し、圧縮転送を確実に機能させることができます。

    例: Brotli 圧縮を優先させるために、Accept-Encoding: gzip, deflate を Accept-Encoding: br に変更します。詳細については、「Brotli 圧縮」をご参照ください。

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

    例:Location: https://www.example.com/new-page.html:301 または 302 リダイレクトのために、CDN とユーザーのブラウザーに新しいリソースの場所を通知します。

  • カスタムヘッダーの追加:特定の機能を実装したり、追跡目的で、レスポンスにカスタムヘッダーを追加する必要がある場合があります。

注意事項

  • 複数の設定は、設定リストに表示される順序で上から下に実行されます。効果は累積されます。複数の設定が同じヘッダーを変更する場合、最後の設定が優先されます。次の例では、設定 2 が有効になります。

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

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

  • ルール条件が適用される場合、照合は設定の順序ではなく、条件の優先度によって決定されます。

操作手順

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

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

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

    ドメイン名

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

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

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

  7. オリジンレスポンスヘッダーの設定を変更します。

    重要

    複数の操作が同じオリジンレスポンスヘッダーパラメーターに適用される場合、操作は 書き換え > 追加 > 変更 および 削除 の優先度に基づいて実行されます。たとえば、同じパラメーターに 追加 操作と 削除 操作の両方が設定されている場合、追加 操作が 削除 操作の前に実行されます。

    レスポンスヘッダーの追加

    パラメーター

    例

    説明

    [実行内容]

    追加

    指定されたレスポンスヘッダーをオリジンレスポンスに追加します。

    [応答ヘッダー]

    [カスタム back-to-origin レスポンスヘッダー]

    カスタム back-to-origin レスポンスヘッダー またはプリセットのレスポンスヘッダーパラメーターを選択します。

    [カスタム応答ヘッダー名]

    x-code

    カスタムレスポンスヘッダーの名前を指定します。

    [応答ヘッダー値]

    key1

    1 つ以上のヘッダー値をカンマ (,) で区切って入力します。

    key1,key2

    [重複の許可]

    はい

    • [はい]:重複するレスポンスヘッダーの追加を許可します。例:x-code:key1 と x-code:key2。

    • [いいえ]:同じ名前のヘッダーが既に存在する場合、新しい値が既存の値を上書きします。たとえば、x-code:key1 を追加した後に x-code:key2 を追加すると、最終的なヘッダーは x-code:key2 となります。

    [ルール条件]

    使用しない

    ルール条件は、ユーザーリクエスト内のさまざまなパラメーター情報を識別します。これにより、そのリクエストに対して設定が有効になるかどうかが決まります。

    • 使用しない:ルール条件を使用しません。

    • ルール条件を追加または編集するには、ルールエンジンで管理してください。

    レスポンスヘッダーの削除

    パラメーター

    例

    説明

    [実行内容]

    削除

    指定された名前を持つすべてのレスポンスヘッダーを、重複を含めて削除します。

    [応答ヘッダー]

    [カスタム back-to-origin レスポンスヘッダー]

    カスタム back-to-origin レスポンスヘッダー またはプリセットのレスポンスヘッダーパラメーターを選択します。

    [カスタム応答ヘッダー名]

    x-code

    削除するカスタムレスポンスヘッダーの名前を指定します。

    [ルール条件]

    使用しない

    ルール条件は、ユーザーリクエスト内のさまざまなパラメーター情報を識別します。これにより、そのリクエストに対して設定が有効になるかどうかが決まります。

    • 使用しない:ルール条件を使用しません。

    • ルール条件を追加または編集するには、ルールエンジンで管理してください。

    レスポンスヘッダーの変更

    パラメーター

    例

    説明

    [実行内容]

    変更

    ヘッダーを変更します。同じ名前の重複したヘッダーが存在する場合、この操作は許可されません。

    [応答ヘッダー]

    [カスタム back-to-origin レスポンスヘッダー]

    カスタム back-to-origin レスポンスヘッダー またはプリセットのレスポンスヘッダーパラメーターを選択します。

    [カスタム応答ヘッダー名]

    x-code

    変更するカスタムレスポンスヘッダーの名前を指定します。

    [値の変更]

    key1,key3

    ヘッダーの新しい値を指定します。複数の値を設定するには、カンマ (,) で区切ります。

    [ルール条件]

    ルール条件は、ユーザーリクエスト内のさまざまなパラメーター情報を識別します。これにより、そのリクエストに対して設定が有効になるかどうかが決まります。

    • 使用しない:ルール条件を使用しません。

    • ルール条件を追加または編集するには、ルールエンジンで管理してください。

    レスポンスヘッダーの置換

    パラメーター

    例

    説明

    [実行内容]

    置換

    ヘッダー値を置換します。同じ名前の重複したヘッダーが存在する場合、この操作は許可されません。

    [応答ヘッダー]

    [カスタム back-to-origin レスポンスヘッダー]

    カスタム back-to-origin レスポンスヘッダー またはプリセットのレスポンスヘッダーパラメーターを選択します。

    [カスタム応答ヘッダー名]

    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 の 4 つのレスポンスヘッダーを扱います。これらの基本的な HTTP プロトコルヘッダーは、キャッシュの制御、コンテントタイプの定義、有効期限の設定、リソースの最終更新時刻の記録を行います。

ヘッダー

説明

例

Cache-Control

リソースのキャッシュ動作と期間を制御します。POP とクライアントブラウザーにキャッシュディレクティブを提供し、コンテンツをいつ、どのくらいの期間キャッシュし、いつ失効するかを指定します。このヘッダーは、レガシーの Expires ヘッダーよりも優先されます。

  • Cache-Control: no-cache は、キャッシュされたリソースを使用する前にオリジンでの検証を強制します。

  • Cache-Control: max-age=3600 は、リソースが 3600 秒 (1 時間) 有効であり、オリジンフェッチなしでキャッシュから提供できることを指定します。

Content-Type

リソースのメディアタイプを指定します。このヘッダーは、クライアントブラウザーがデータを正しく解釈してレンダリングするのに役立ちます。CDN もこのヘッダーを使用してコンテンツを処理し、転送します。

  • Content-Type: text/html は、コンテンツが HTML 形式であることを示します。

  • Content-Type: image/jpeg は、リソースが JPEG 画像であることを示します。

Expires

リソースが期限切れになる日時を指定します。CDN はこのヘッダーを使用して、リソースがまだ有効かどうかを判断します。期限切れの場合、CDN はオリジンフェッチを実行して更新されたバージョンを取得します。Expires ヘッダーはレガシーメカニズムです。HTTP/1.1 では、Cache-Control ヘッダーがよりきめ細かい制御を提供するため、Expires の使用は減少しています。

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

Last-Modified

リソースが最後に変更された時刻を示します。CDN とクライアントブラウザーは、このレスポンスヘッダーを使用して、キャッシュされたリソースがまだ最新であるかどうかを判断します。

Last-Modified: Wed, 21 Oct 2023 07:28:00 GMT は、リソースの最終更新時刻を示し、キャッシュの検証に使用されます。

設定例

例 1:レスポンスの MIME タイプを設定

ユースケース

レスポンスに特定の MIME タイプを設定します。

説明

MIME タイプには、次の主要なカテゴリが含まれます。

  • Text:テキストファイル (.txt や .csv など) や HTML ファイル (.html、.htm、.shtml など) が含まれます。

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

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

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

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

設定

  • レスポンスヘッダー操作:追加

  • ヘッダー名:Content-Type

  • ヘッダー値:text/html

    [重複を許可] は いいえ に、[ルール条件] は 使用しない に設定し、[OK] をクリックします。

結果:POP は、オリジンサーバーからのレスポンスに Content-Type: text/html ヘッダーを追加します。このヘッダーを再度設定すると、新しい値が既存の値を上書きします。

例 2:レスポンスヘッダーの削除

ユースケース

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

設定

  • レスポンスヘッダー操作:削除

  • ヘッダー名:Content-Type

    [ルール条件] は 使用しない に設定し、[OK] をクリックします。

結果:POP は、クライアントにレスポンスを返す前に、レスポンスから Content-Type ヘッダーを削除します。

説明

例 1 と 例 2 の両方の設定を適用した場合、システムはまず Content-Type: text/html レスポンスヘッダーを追加してから削除します。その結果、クライアントは MIME タイプが指定されていないレスポンスを受信します。

よくある質問

  • トラブルシューティングに関する質問 (CORS、文字化け、ダウンロード/プレビュー、Set-Cookie、JS MIME タイプなど) については、「キャッシュのトラブルシューティング」をご参照ください。

  • コンサルティングに関する質問 (オリジン ACAO チェック、正確なビデオ/mp4 設定、JS ファイルのサポート、ファイル同期ステータスなど) については、「オリジンフェッチに関するよくある質問」をご参照ください。