HTTP リクエストとレスポンスのヘッダー追加・変更
最終更新日 2018-08-16
HTTP ヘッダーフィールドは、Hypertext Transfer Protocol (HTTP) のリクエストとレスポンスメッセージのヘッダーセクションに存在するコンポーネントです。HTTP トランザクションの動作パラメーターを定義します。ヘッダーを作成して設定することにより、ユーザーに対してそのコンテンツをどのように提供するかを指定できます。ヘッダーの追加と編集の方法を以下に説明します。
新しいヘッダーの作成
- Fastly コントロールパネルにログインします。
- Home ページから、該当するサービスを選択します。検索ボックスを使用して ID、名前、またはドメインで検索することができます。
- Edit configuration ボタンをクリックし、アクティブなバージョンをクローンするオプションを選択します。ドメインページが表示されます。
- Content をクリックします。Content ページが表示されます。
-
Create header ボタンをクリックしてください。Create a header 設定画面を開きます。
- 以下の要領で Create a header ウィンドウの各フィールドに入力します。
- Name フィールドに、ヘッダールールの名前を入力します (例 :
My header
)。 - Type メニューから Request を選択し、Action メニューから Set を選択。
- Destination フィールドに、選択したアクションによって提供を受けるヘッダー名を入力します。
- Source フィールドに、そのヘッダーのコンテンツの取得元を入力します。
- Destination フィールドのヘッダーを変更する場合、Ignore if set メニューから No を選択します。変更しない場合は Yes を選択してください。
- Priority フィールドに、ヘッダールールを実行する順番を入力します。
下の フィールドの説明表 でこれらの各コントロールについて詳しく説明します。
- Name フィールドに、ヘッダールールの名前を入力します (例 :
- Create ボタンをクリックします。
- Activate ボタンをクリックして設定変更をデプロイします。
ヘッダーの編集
- Fastly コントロールパネルにログインします。
- Home ページから、該当するサービスを選択します。検索ボックスを使用して ID、名前、またはドメインで検索することができます。
- Edit configuration ボタンをクリックし、アクティブなバージョンをクローンするオプションを選択します。ドメインページが表示されます。
- Content をクリックします。Content ページが表示されます。
-
編集するヘッダーの名前をクリックします。Edit this header ページが表示されます。
- 以下の要領で Edit this header 設定画面の各フィールドに入力します。
- Name フィールドに、ヘッダールールの名前を入力します (例 :
My header
)。 - Type メニューから Request を選択し、Action メニューから Set を選択。
- Destination フィールドに、選択したアクションによって提供を受けるヘッダー名を入力します。
- Source フィールドに、そのヘッダーのコンテンツの取得元を入力します。
- Destination フィールドのヘッダーを変更する場合、Ignore if set メニューから No を選択します。変更しない場合は Yes を選択してください。
- Priority フィールドに、ヘッダールールを実行する順番を入力します。
- Name フィールドに、ヘッダールールの名前を入力します (例 :
- Update ボタンをクリックします。
- Activate ボタンをクリックして設定変更をデプロイします。
各フィールドの説明
以下の表では、Header 設定画面の各フィールドについて説明します。
フィールド | 説明 |
---|---|
Name | Name フィールドには、特定のヘッダールールを識別し覚えておけるような忘れにくい単語やフレーズを指定します。 |
Type | Type メニューは、Request、Response、または Cache に設定できます。Request を選択すると、ユーザーからのリクエストが変更され、その変更内容はオリジンサーバーへのリクエストにも及びます。Response を選択すると、ユーザーへ返す HTTP レスポンスが変更されます。Cache を選択すると、オリジンサーバーからの HTTP レスポンスが、Fastly サーバーに保持される前に変更されます。つまり、どのような変更をしてもキャッシュヒットに記憶されるようになります。 |
Action | Action メニューは、Set、Append、Delete、Regex、Regex All のいずれかに設定できます。Set (デフォルト) を選択すると、指定したヘッダーに値を設定します (当該ヘッダーがすでに存在している場合は、値を上書きします)。 Append を選択すると、指定したヘッダーの末尾に値を追加します (ヘッダーが存在しない場合はその値をセットします)。 Delete を選択するとヘッダーが削除されます。この場合、Header 設定画面の Source フィールドは非表示となります。Regex を選択すると入力した正規表現に基づいて指定したテキストの検索・置換が可能となります。この選択時には、Header 設定画面には Regex および Substitution コントロールが表示されます。Regex All を選択すると Regex と同じ関数を使用できますが、複数回の検索・置換が可能な点が異なります。この選択時には、Header 設定画面には Regex および Substitution コントロールが表示されます。 |
Destination | Destination フィールドは、Action の設定内容が適用されるヘッダー名を指定します。ヘッダールールは HTTP ヘッダー以外にも適用できるので、このフィールドの入力内容は次の形式にする必要があります : http.Header-Name |
Source | Source フィールドは、Set、Append、Regex、および Regex All のアクションを選択すると表示されます。Action メニューで Delete を選択すると、このフィールドは Header 設定画面から非表示となります。Source フィールドはヘッダーに設定する値の参照元を指定しますが、数多くの選択肢があります。最も単純なのは、"My Static String" などの静的文字列です (引用符を含む)。その他のオプションには client.ip 、req.http.Another-Header 、および client.geo.city があります。一覧は、下記の主要な情報の参照元を参照してください。 |
Regex | Regex フィールドは、Action メニューで Regex または Regex All を選択した場合のみ Header 設定画面に表示されます。このフィールドを使用すると、入力した正規表現に基づいて文字列の検索と置換を行うことができます。 |
Substitution | Substitution フィールドは、Action メニューで Regex または Regex All を選択した場合のみ Header 設定画面に表示されます。このオプションは、正規表現によって削除されたテキストを Substitution フィールドに入力したテキストに置き換えます。 |
Ignore if set | デフォルトでは、このフィールドは No に設定されています。これは、変更しようとするヘッダーがすでに存在する場合、そのヘッダーを変更することを意味します。 |
Priority | Priority フィールドは、ヘッダールールを実行する順番を決定します (例えば、このフィールドを1にすると、そのヘッダールールが最初に実行されます)。最初にいくつかのヘッダーを設定し、それらに基づいてさらに他のヘッダーを設定する場合は、このフィールドが重要になります。 |
主要な情報の参照元
Name | 有効なタイプ | 説明 |
---|---|---|
req.http.Fastly-Client-IP |
Request, Cache, Response | 本当のクライアント IP アドレス。 |
client.ip と client.identity |
Request, Cache, Response | クライアント IP アドレス。これらの変数は常に参照可能ですが、ソース IP アドレスを表示しているとは限りません。例えば、オリジンシールドが有効な場合、エッジノードの IP となることがあります。本当のクライアント IP アドレスを参照するにはreq.http.Fastly-Client-IP 、を用いてください。重要: クライアント IP データは機密情報として扱われることがあります。機密の IP アドレス情報を転送・保管する場合には適切に処理してください。 |
server.identity |
Request, Cache, Response | リクエストを処理している Fastly サーバーの一意の識別子。 |
server.region |
Request, Cache, Response | Fastly サーバーのある地域。 |
server.datacenter |
Request, Cache, Response | Fastly サーバーのあるデータセンター。 |
req.url |
Request, Cache, Response | クライアントから送られた HTTP リクエストの URL。 |
req.http.* |
Request, Cache, Response | HTTP リクエスト内のヘッダーの値。形式 req.http.HeaderName : |
beresp.status |
Cache | オリジンサーバーから返されるステータスコード。 |
beresp.http.* |
Cache | オリジンからの HTTP レスポンス内のヘッダーの値。形式 beresp.http.HeaderName : |
resp.status |
Response | クライアントへ返されるステータスコード。 |
resp.http.* |
Response | クライアントへ返される HTTP レスポンス内のヘッダーの値。形式 resp.http.HeaderName : |
client.geo.* |
Request, Cache, Response | クライアント IP に対応する位置情報の値 (詳細は位置情報に関する記事を参照のこと)。 |