送信レスポンスヘッダーは、Edge Security Acceleration (ESA) の POP (ポイントオブプレゼンス) がクライアントに送信する HTTP レスポンスメッセージの一部です。POP で送信レスポンスヘッダーを設定して、リソースと共に返されるヘッダーを制御できます。ESA では、送信レスポンスヘッダールールの追加、変更、削除が可能です。
仕組み
クライアントがリソースをリクエストすると、リクエストはまず ESA の POP に到達します。リクエストが ESA の POP でキャッシュミスした場合、POP はオリジンサーバーにオリジンフェッチリクエストを送信してデータを取得します。オリジンサーバーがデータを返した後、ESA の POP は、設定されたレスポンスヘッダールール (特定のヘッダーの追加、置換、削除など) に基づいて元のレスポンスを変更します。最後に、POP は変更されたレスポンスヘッダーを含む完全なリソースをクライアントに返します。このプロセスは、オリジン間アクセス制御の実装、キャッシュポリシーの最適化、その他のビジネス要件を満たすのに役立ちます。
利用シーン
ESA が返すリソースタイプをクライアントに通知:
Content-Type: text/htmlなどのレスポンスヘッダーを追加します。これにより、ESA からのファイル形式が HTML であることがクライアントに通知され、クライアントはそれを正しくレンダリングできます。オリジン間リソース共有の有効化:ユーザーが ESA によって提供されるドメイン名からリソースをリクエストする場合、ESA からのレスポンスメッセージに
Access-Control-Allow-Originレスポンスヘッダーを設定できます。これにより、オリジン間リソース共有が有効になります。詳細については、「オリジン間リソース共有の設定」をご参照ください。レスポンス動作のカスタマイズ:カスタムヘッダーを追加または変更して、クライアントが受信するレスポンスのコンテンツとフォーマットを調整します。これにより、特定の機能や追跡を実装できます。
注意事項
複数のルールを追加した場合、リストに表示される順序で上から下に実行されます。後続のルールが同じレスポンスヘッダー名を指定した場合、前のルールが上書きされます。これにより、予期しない結果が生じる可能性があります。
例 1
レスポンスメッセージにヘッダー
test:123が含まれています。ルールによってヘッダー
test:321が追加されます。
レスポンスメッセージがルールに一致する場合、元のヘッダー test:123 は test:321 で上書きされます。
例 2
レスポンスメッセージにヘッダー
test:123が含まれています。ルールによってヘッダー
test:321が追加され、さらにヘッダーtestを削除する別のルールが設定されています。
レスポンスメッセージがルールに一致する場合、元のヘッダー test:123 は削除されます。
操作手順
ルールを追加した後、ユーザーがリソースをリクエストすると、ESA は ルール実行の優先順位 に基づいてルールを順次照合し、実行します。
ESA コンソールで、サイト管理 を選択します。サイト 列で、対象サイトの名前をクリックします。
左側のナビゲーションウィンドウで、 を選択します。
[レスポンスヘッダーの変更] タブをクリックし、ESAからクライアントへ を選択します。ルールを追加 をクリックし、ルール名 を入力します。
リクエストが以下のルールと一致する場合... セクションで、リクエスト一致条件を設定します。ルールの設定方法の詳細については、「ルール式の構成」をご参照ください。
[変更][レスポンスヘッダー] セクションで、[操作]を選択し、[レスポンスヘッダー名]と[レスポンスヘッダーの値]を入力します。
操作
タイプ
説明
例
[追加]
静的
指定されたレスポンスヘッダーをクライアントに送信されるレスポンスに追加します。
レスポンスに同じ名前のヘッダーが既に含まれている場合、新しいヘッダーが既存のヘッダーを上書きします。
名前が
x-codeで値がkey1のレスポンスヘッダーを追加するには、次のパラメーターを設定します。レスポンスヘッダー名:
x-codeレスポンスヘッダー値:
key1
動的
レスポンスヘッダー値は式に設定できます。
クライアント IP アドレスの国またはリージョンを記録するために、名前が
Client-Ip-Geo-Locationで値がip.geoip.countryのレスポンスヘッダーを追加するには、次のパラメーターを設定します。レスポンスヘッダー名:
Client-Ip-Geo-Location[レスポンスヘッダー値]:
ip.geoip.country
変更
静的
クライアントに送信されるレスポンス内の指定されたレスポンスヘッダーの値を更新します。
名前が
x-codeのレスポンスヘッダーを値key2に更新するには、次のパラメーターを設定します。レスポンスヘッダー名:
x-codeレスポンスヘッダーの値:
key2
動的
レスポンスヘッダー値は式に設定できます。
ヘッダー値をクライアント IP アドレスの国またはリージョンに変更するために、名前が
Client-Ip-Geo-Locationのレスポンスヘッダーを値ip.geoip.countryに更新するには、次のパラメーターを設定します。レスポンスヘッダー名:
Client-Ip-Geo-Location[レスポンスヘッダー値]:
ip.geoip.country
削除
重複するレスポンスヘッダーパラメーターがあるかどうかに関わらず、クライアントに送信されるレスポンスから [レスポンスヘッダー名] に一致するすべてのパラメーター値を削除します。
名前が
x-codeのレスポンスヘッダーを削除するには、[レスポンスヘッダー名] をx-codeに設定します。説明ali-innerまたはali-swiftで始まる [レスポンスヘッダー名] を設定しないでください (大文字と小文字は区別されません)。[レスポンスヘッダー値] には複数の値を設定できます。値をコンマ (
,) で区切ります。削除操作は、静的モードと動的モードの両方で同じように機能します。
更新操作は、既存のレスポンスヘッダーを変更します。この操作は、元のレスポンスに指定された名前のヘッダーが存在する場合にのみ有効になります。
[OK] をクリックします。
動的式の例
例 1
クライアントの送信元 IP アドレスを記録するレスポンスヘッダーを追加します。
レスポンスヘッダー名:
True-Client-IPレスポンスヘッダー値:
ip.src
例 2
クライアント IP アドレスに対応する国コードを記録するレスポンスヘッダーを追加します。
レスポンスヘッダー名:
IP-Country-Codeレスポンスヘッダー値:
ip.geoip.country
例 2
クライアント IP アドレスに対応する省コードを記録するレスポンスヘッダーを追加します。
レスポンスヘッダー名:
IP-Province-Codeレスポンスヘッダー値:
ip.src.subdivision_1_iso_code
レスポンスヘッダーパラメーター
レスポンスヘッダーパラメーター | 説明 | 例 |
カスタム | カスタムレスポンスヘッダーを追加できます。カスタムレスポンスヘッダー名は、次の要件を満たす必要があります:
| 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-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://を含める必要があります。レスポンスヘッダー値にはポート番号を含めることができます。
レスポンスヘッダー値はワイルドカードドメイン名をサポートしています。
関連ドキュメント
ルール関連の機能は、実行の優先順位、ルールの動作、設定範囲が異なります。詳細については、「ESA ルールの有効化の仕組み」をご参照ください。