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

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

新しいヘッダーの作成

  1. Fastly コントロールパネルにログインし。
  2. All services ページから適切なサービスを選択します。検索ボックスを使用すると、ID、名称、ドメインでの検索が行えます。
  3. Edit configuration ボタンをクリックし、オプションを選択してアクティブバージョンをクローンします。設定画面が開きます。
  4. Content のリンクをクリックし、Content 設定画面を開きます。
  5. Create header ボタンをクリックしてください。Create a 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. All services ページから適切なサービスを選択します。検索ボックスを使用すると、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 Name フィールドには、特定のヘッダールールを識別し覚えておけるような忘れにくい単語やフレーズを指定します。
Type Type メニューは、RequestResponse、または Cache に設定できます。Request を選択すると、ユーザーからのリクエストが変更され、その変更内容はオリジンサーバーへのリクエストにも及びます。Response を選択すると、ユーザーへ返す HTTP レスポンスが変更されます。Cache を選択すると、オリジンサーバーからの HTTP レスポンスが、Fastly サーバーに保持される前に変更されます。つまり、どのような変更をしてもキャッシュヒットに記憶されるようになります。
Action 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-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.ipclient.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 に対応する位置情報の値 (詳細は位置情報に関する記事を参照のこと)。
Back to Top