HTTP リクエストとレスポンスのヘッダー追加・変更

HTTP ヘッダーフィールドは、Hypertext Transfer Protocol (HTTP) のリクエストとレスポンスメッセージのヘッダーセクションに存在するコンポーネントです。HTTP トランザクションの動作パラメーターを定義します。ヘッダーを作成して設定することにより、ユーザーに対してコンテンツをどのように提供するかを指定することができます。ヘッダーの追加と編集の方法は以下の通りです。

新しいヘッダーの作成

  1. Fastly コントロールパネルにログインします。
  2. Home ページから、適切なサービスを選択します。検索ボックスで ID、名称、ドメインでの検索が行えます。
  3. Edit configuration ボタンをクリックし、アクティブなバージョンをクローンするオプションを選択します。ドメインページが表示されます。
  4. Content をクリックします。Content ページが表示されます。
  5. Create header ボタンをクリックします。Create a header 設定画面が表示されます。

    ヘッダーを作成する

  6. 以下の要領では、Create a header ページの各フィールドに入力します。
    • Name フィールドには、ヘッダールール名を入力します (例:My header)。
    • Type メニューから Request を選択し、Action メニューから Set を選択します。
    • Destination フィールドに、選択したアクションの影響を受けるヘッダーの名前を入力します。
    • Source フィールドに、そのヘッダーに設定される値を入力します。
    • Destination フィールドのヘッダーを変更する場合、Ignore if set メニューから No を選択します。変更しない場合は Yes を選択してください。
    • Priority フィールドに、ヘッダールールを実行する順番を入力します。

    下の各フィールドの説明表でこれらの各コントロールについて詳しく説明します。

  7. Create ボタンをクリックします。
  8. Activate ボタンをクリックして設定変更をデプロイします。

ヘッダーの編集

  1. Fastly コントロールパネルにログインします。
  2. Home ページから、適切なサービスを選択します。検索ボックスで ID、名称、ドメインでの検索が行えます。
  3. Edit configuration ボタンをクリックし、アクティブなバージョンをクローンするオプションを選択します。ドメインページが表示されます。
  4. Content をクリックします。Content ページが表示されます。
  5. 編集するヘッダーの名前をクリックします。Edit this header ページが表示されます。

    Edit this header ウィンドウを編集する

  6. 以下のように Edit this header 設定画面の各フィールドに入力します:
    • Name フィールドには、ヘッダールール名を入力します (例:My header)。
    • Type メニューから Request を選択し、Action メニューから Set を選択します。
    • Destination フィールドに、選択したアクションの影響を受けるヘッダーの名前を入力します。
    • Source フィールドに、そのヘッダーに設定される値を入力します。
    • Destination フィールドのヘッダーを変更する場合、Ignore if set メニューから No を選択します。変更しない場合は Yes を選択してください。
    • Priority フィールドに、ヘッダールールを実行する順番を入力します。
  7. Update ボタンをクリックします。
  8. Activate ボタンをクリックして設定変更をデプロイします。

各フィールドの説明

以下の表では、Header 設定画面の各フィールドについて説明します:

フィールド 説明
名前 Name フィールドには、特定のヘッダールールを識別し、覚えておけるような忘れにくい単語やフレーズを指定します。
種類 Type メニューは、RequestResponse、または Cache に設定することができます。Request を選択すると、ユーザーからのリクエストが変更され、その変更内容はオリジンサーバーへのリクエストにも及びます。Response を選択すると、ユーザーへ返す HTTP レスポンスが変更されます。Cache を選択すると、オリジンサーバーからの HTTP レスポンスが、Fastly サーバーに保持される前に変更されます。つまり、どのような変更をしてもキャッシュヒットに記憶されるようになります。
アクション Action メニューは、SetAppendDeleteRegexRegex 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.ipreq.http.Another-Headerclient.geo.city などがあります。下記の主要な情報の参照元を参照してください。
Regex Regex フィールドは、Action メニューで Regex または Regex All を選択した場合のみ Header 設定画面に表示されます。このフィールドを使用すると、入力した正規表現に基づいて文字列の検索と置換を行うことができます。
Substitution Substitution フィールドは、Action メニューで Regex または Regex All を選択した場合のみ Header 設定画面に表示されます。このオプションは、正規表現によって削除されたテキストを Substitution フィールドに入力したテキストに置き換えます。
Ignore if set デフォルトでは、このフィールドは No に設定されています。これは、変更しようとするヘッダーがすでに存在する場合、そのヘッダーを変更することを意味します。
Priority Priority フィールドは、ヘッダールールを実行する順番を決定します (例えば、このフィールドを1にすると、そのヘッダールールが最初に実行されます)。最初にいくつかのヘッダーを設定し、それらに基づいてさらに他のヘッダーを設定する場合は、このフィールドが重要になります。

主要な情報の参照元

名前 有効なタイプ 説明
req.http.Fastly-Client-IP リクエスト、キャッシュ、レスポンス 本当のクライアント IP アドレス。
client.ip および client.identity リクエスト、キャッシュ、レスポンス クライアント IP アドレス。これらの変数は常に利用可能ですが、ソース IP アドレスを表示しているとは限りません。例えば、オリジンシールドが有効な場合、エッジノードの IP が表示されることがあります。実際のクライアント IP アドレスを使用するには、req.http.Fastly-Client-IP を用いてください

重要: クライアント IP データは機密情報として扱われることがあります。転送・保管する場合には機密の IP アドレス情報の安全を保護してください。
server.identity リクエスト、キャッシュ、レスポンス リクエストを処理している Fastly サーバーの固有の識別子。
server.region リクエスト、キャッシュ、レスポンス Fastly サーバーのある地域。
server.datacenter リクエスト、キャッシュ、レスポンス Fastly サーバーのあるデータセンター。
req.url リクエスト、キャッシュ、レスポンス クライアントから送られた HTTP リクエストの URL。
req.http.* リクエスト、キャッシュ、レスポンス HTTP リクエストのヘッダーの値。形式 : req.http.HeaderName
beresp.status キャッシュ オリジンサーバーから返されるステータスコード。
beresp.http.* キャッシュ オリジンからの HTTP レスポンスのヘッダーの値。形式 : beresp.http.HeaderName
resp.status レスポンス クライアントへ返されるステータスコード。
resp.http.* レスポンス クライアントへ返される HTTP レスポンスのヘッダーの値。形式 : resp.http.HeaderName
client.geo.* リクエスト、キャッシュ、レスポンス クライアントの IP の位置情報値。
Back to Top