要求されたリソースがAlibaba Cloud CDN のポイントオブプレゼンス (POP) にキャッシュされていない場合、またはキャッシュの有効期限が切れた場合、POPは最新のリソースを取得するためにオリジンサーバーにリクエストを送信します。 配信元サーバーから返されるHTTPメッセージのヘッダーは、配信元応答ヘッダーです。 オリジンHTTPレスポンスヘッダーを変更して、キャッシュポリシーとクロスオリジンリソース共有 (CORS) を設定できます。 これにより、Webサイトのパフォーマンス、セキュリティ、ユーザーエクスペリエンスが向上し、リソースへのアクセスが効果的に管理されます。
背景情報
HTTP応答ヘッダーは、HTTPで送信される応答メッセージのヘッダーセクションのコンポーネントです。 HTTP応答ヘッダーには、クライアントに送信される特定のパラメーターが含まれます。
リクエストされたリソースがPOPにキャッシュされていない場合、リクエストはオリジンサーバーにリダイレクトされます。 次に、オリジンサーバは、要求されたリソースをPOPに返す。 オリジンサーバーからHTTPレスポンスヘッダーを書き換えることができます。 このように、クライアントは応答情報を容易に識別できる。 たとえば、ヘッダーがクライアントに返される前にContent-Typeヘッダーの値を書き換えて、クライアントがオリジンサーバーから取得したコンテンツを解析できるようにすることができます。 オリジンサーバーから返されたContent-Typeヘッダーが無効な場合、文字化けしたテキストが表示されます。 この場合、Content-Typeの値をPOPに書き換える必要があります。
オリジンサーバーがPOPからリクエストを受信すると、オリジンサーバーはHTTPメッセージを返します。 書き換えルールは、オリジンサーバーから返された応答のHTTPヘッダーのみを書き換えます。 書き換えルールは、POPから直接返される応答のHTTPヘッダーを書き換えません。
ワイルドカードドメイン名にカスタムHTTPレスポンスヘッダーを設定することはできません。
シナリオ
Content-Typeの無効な値: 配信元サーバーから返される
Content-Type
の値がコンテンツの実際のタイプと一致しない場合、クライアントはコンテンツの解析に失敗する可能性があります。 たとえば、HTMLファイルがプレーンテキストとして誤ってマークされている場合は、レスポンスヘッダーを書き換えることができます。この例では、
Content-Type: text/plain
をContent-Type: text/html
に変更します。キャッシュポリシー: 正確なキャッシュ制御を維持する場合は、
Cache-control
またはExpires
レスポンスヘッダーを調整できます。 これにより、キャッシュされたコンテンツの更新頻度とヒット率が最適化されます。この例では、
Cache-Control: max-age=3600
をCache-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, deflate
をAccept-Encoding: br
に変更します。 詳細については、「Brotli圧縮の設定」をご参照ください。リダイレクト: オリジンサーバーがリクエストを別のURLにリダイレクトする必要がある場合、この機能を使用して正しいリダイレクト応答ヘッダーを設定できます。 詳細については、「301/302リダイレクトの設定」をご参照ください。
例:
Location: https://www.example.com/new-page.html
Locationヘッダーの値は、POPが配信元サーバーから返されたHTTPステータスコード301または302を受信した後に、要求されたリソースの新しいアドレスを指定します。カスタムオリジンレスポンスヘッダー: オリジンサーバーが特別な要件のカスタムHTTPヘッダーを返すようにする場合は、カスタムHTTPレスポンスヘッダーを設定できます。
使用上の注意
同じヘッダーに対して複数のルールが設定されている場合、ルールは設定リストの上から下に実行されます。 例:
構成1:
cache-control: max-age=3600
レスポンスヘッダーを追加します。設定2:
cache-control: no-cache
レスポンスヘッダーを追加します。
上記の組み合わせ構成では、構成2が有効になります。
手順
Alibaba Cloud CDNコンソール
左側のナビゲーションウィンドウで、ドメイン名 をクリックします。
[ドメイン名] ページで、管理するドメイン名を見つけて、アクション 列の 管理 をクリックします。
ドメイン名の左側のナビゲーションツリーで、Back-to-Origin 設定 をクリックします。
カスタム応答ヘッダー タブをクリックします。
追加 をクリックします。
[カスタムレスポンスヘッダー] ダイアログボックスでパラメーターを設定します。
重要同じレスポンスヘッダに対して同時に異なる操作が行われる場合、それらの操作は異なる優先度を有する。 操作は、置換 > 追加 > 変更または削除の降順で優先されます。 たとえば、同じ応答ヘッダーに対して [追加] および [削除] 操作を同時に実行すると、応答ヘッダーが追加されてから削除されます。
[追加] 操作のパラメーター
削除操作のパラメーター
変更操作のパラメーター
Replace操作のパラメーター
OK をクリックします。
デフォルトのプリセット応答ヘッダー
デフォルトでは、Alibaba Cloud CDNは次のHTTPレスポンスヘッダーを提供します: Cache-Control、Content-Type、Expires、Last-Modified。 これらのレスポンスヘッダーは、キャッシュの制御、コンテンツタイプの定義、キャッシュの有効期限の指定、およびリソースの最終変更時刻の記録に使用されるHTTPプロトコルの重要なコンポーネントです。
Alibaba Cloud CDNのプリセットレスポンスヘッダー | 説明 | 例 |
Cache-Control | POPおよびクライアントブラウザーでリソースをキャッシュする方法と時間を指定します。 このレスポンスヘッダーは、 |
|
Content-Type | クライアントに返されるリソースのデータ型について説明します。 この応答ヘッダーは、クライアントが受信したリソースを正しく解釈して表示するのに役立ち、その後のデータ処理と送信を容易にします。 |
|
Expires | キャッシュされたコンテンツが期限切れになる正確な日付または時刻を指定します。 コンテンツの有効期限が切れると、POPはすぐに配信元サーバーに更新されたリソースを要求します。 |
|
Last-Modified | リソースが最後に変更された時刻を指定します。 Alibaba Cloud CDNおよびブラウザーは、このレスポンスヘッダーを使用して、最後のキャッシュ以降にリソースが変更されたかどうかを判断します。 |
|
例
例1: ユーザーに返されるコンテンツがMIMEタイプであることを指定します。
シナリオ例
レスポンスヘッダーを追加して、ユーザーに返されるコンテンツが指定されたMIMEタイプであることを指定します。
MIMEコンテンツには次のタイプがあります。
Text: などのテキストファイルを含みます。txtと。csvファイル、およびなどのHTMLファイル。html, . htm, . およびshtmlファイル。
画像: などの一般的な画像ファイルを含みます。jpg, . png、および。gifファイル。
Audio: などのオーディオファイルを含みます。mp3と。wavファイル。
ビデオ: などのビデオファイルを含みます。mp4と。aviファイル。
アプリケーション: などのアプリケーションファイルを含みます。pdf、。doc、および。xlsファイル。
設定
操作: 追加
応答ヘッダー: Content-Type
ヘッダー値: text/html
期待される結果: オリジンサーバーは、POPに返される応答に、値がtext/htmlであるContent-Typeヘッダーを追加します。 設定が更新されると、値は上書きされます。
例2: 応答ヘッダーの削除
シナリオ例
レスポンスからレスポンスヘッダーを削除します。
設定
操作: 削除
応答ヘッダー: Content-Type
期待される結果: Content-Typeヘッダーは、ヘッダーがユーザーに返される前にレスポンスから削除されます。
例1の追加操作と例2の削除操作を実行すると、値text/htmlを持つContent-Typeヘッダーがレスポンスに追加され、削除されます。 その結果、ユーザーに返されるコンテンツは、指定されたMIMEタイプではなく、元のタイプになります。