Apache HTTP サーバ バージョン 2.4
説明: | HTTP リクエストのヘッダと応答のヘッダのカスタマイズ |
---|---|
ステータス: | Extension |
モジュール識別子: | headers_module |
ソースファイル: | mod_headers.c |
互換性: | RequestHeader
は Apache 2.0 以降のみで使用可能 |
このモジュールは HTTP のリクエストヘッダと応答ヘッダを制御し、 変更するためのディレクティブを提供します。ヘッダを追加したり、 置き換えたり、削除したりすることができます。
mod_headers
のディレクティブはサーバ設定のほぼどこにでも
書くことができ、影響する範囲を設定用セクションで囲むことで限定する
ことができます。
処理の順番は重要で、設定ファイル中の順番と、設定用セクション内の位置との両方に 影響されます。以下の二つのヘッダは順番が逆になると 違う結果になります:
RequestHeader append MirrorID "mirror 12"
RequestHeader unset MirrorID
この順番の場合は、MirrorID
ヘッダは設定されません。
逆になっていると、MirrorID ヘッダは "mirror 12" に設定されます。
mod_headers
では、リクエストの早期か後期かの
どちらで適用するかを選べます。通常は後期モードで、
コンテンツ生成が実行される直前にリクエストヘッダがセットされ、
レスポンスとして送出される直前にレスポンスヘッダがセットされます。
運用中のサーバでは必ず後期モードを使ってください。
早期モードは開発者向けのテスト/デバッグ用に設計されています。
early
キーワード指定されたディレクティブによって、
リクエスト処理の開始地点になります。
つまり、異なるリクエストを試したりテストケースをセットアップするのに
活用できる一方で、レスポンスを生成する前に他のモジュールによって
ヘッダが書き換えられてしまうかもしれないということを意味します。
early ディレクティブではリクエストパスの設定が解決される前に
処理されるので、メインサーバかバーチャルホストコンテキストでのみ、
早期ヘッダをセットできます。early ディレクティブはリクエストパスに
依存することはできませんので、<Directory>
や
<Location>
といったコンテキスト内では使用
できません。
Header echo ^TS
MyHeader
を応答に追加します。このヘッダはクライアントが
サーバの負荷を直観的に知るためや、クライアント-サーバ間の
ボトルネックを調べるために使うことができます。
Header add MyHeader "%D %t"
上記の設定では、以下のようなヘッダが応答に追加されることになります:
MyHeader: D=3775428 t=991424704447256
Header add MyHeader "Hello Joe. It took %D microseconds for Apache to serve this request."
以下のようなヘッダが応答に追加されることになります
MyHeader: Hello Joe. It took D=3775428 microseconds for Apache to serve this request.
MyHeader
を応答に
付けます。これは、クライアントの要求に応えてヘッダを作成するときに
役に立ちます。この例では mod_setenvif
モジュールが必要なことに
注意してください。
SetEnvIf MyRequestHeader value HAVE_MyRequestHeader
Header add MyHeader "%D %t mytext" env=HAVE_MyRequestHeader
もし HTTP リクエストに MyRequestHeader: value
ヘッダが
あると、応答には以下のようなヘッダが付加されます。
MyHeader: D=3775428 t=991424704447256 mytext