LOG IN SIGN UP
Documentation

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

  Last updated June 09, 2017

HTTP ヘッダーは、HTTP (Hypertext Transfer Protocol) のリクエストおよびレスポンスメッセージのヘッダー部分を構成する要素で、HTTP トランザクションの動作を規定します。ヘッダーを作成して設定することにより、ユーザーに対してそのコンテンツをどのように提供するかを指定できます。ヘッダーの追加と編集の方法を以下に説明します。

新しいヘッダーの作成

  1. Fastly コントロールパネルにログインし、Configure のリンクをクリックします。
  2. サービスメニューから設定対象のサービスを選択します。
  3. Configuration ボタンをクリックし、Clone active を選択すると設定画面が開きます。
  4. Content のリンクをクリックし、Content 設定画面を開きます。

    the Content page

  5. Create header ボタンをクリックし、Create a header 設定画面を開きます。

    Create a header

  6. 以下の要領で Create a header 設定画面の各フィールドに入力します。

    • Name フィールドに、ヘッダールールの名前を入力します (例:My header)。
    • Type メニューから Request を選択し、続いてAction メニューから Set を選択します。
    • Destination フィールドに、このルールを適用するヘッダー名を入力します。     * Source フィールドに、そのヘッダーに設定される値を入力します。
    • すでにヘッダーが存在する場合にその内容を変更するなら、Ignore if set メニューから No を選択します。既存のヘッダーを変更しない場合は Yes を選択してください。
    • Priority フィールドに、ヘッダールールを実行する順番を入力します。

    下記の各フィールドの説明にて指定内容それぞれについて詳しく説明します。

  7. Create ボタンをクリックします。
  8. Activate ボタンをクリックしてサービスをデプロイします。

ヘッダーの編集

  1. Fastly コントロールパネルにログインし、Configure のリンクをクリックします。
  2. サービスメニューから設定対象のサービスを選択します。
  3. Configuration ボタンをクリックし、Clone active を選択すると設定画面が開きます。
  4. Content のリンクをクリックし、Content 設定画面を開きます。
  5. 変更対象のヘッダー名をクリックすると Edit this header 設定画面が開きます。

    the Edit this header window

  6. 以下の要領で Edit this header 設定画面の各フィールドに入力します。

    • Name フィールドに、ヘッダールールの名前を入力します (例:My header)。
    • Type メニューから Request を選択し、続いてAction メニューから Set を選択します。
    • Destination フィールドに、このルールを適用するヘッダー名を入力します。
    • Source フィールドに、そのヘッダーに設定される値を入力します。
    • すでにヘッダーが存在する場合にその内容を変更するなら、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 を選択すると、指定したヘッダーの末尾に値を追加します (ヘッダーが存在しない場合は、Set 相当の動作となります)。Delete を選択するとヘッダーを削除します。この場合、Header 設定画面の Source フィールドは非表示となります。Regex を選択すると文字列の検索・置換が可能です。Header 設定画面には検索文字列を指定する Regex コントロールと、置換文字列用の Substitution コントロールが表示され、正規表現が利用できます。Regex All を選択すると Regex と同じ機能を使用できますが、複数回の検索・置換が可能な点が異なります。この選択時には、Header 設定画面には Regex および Substitution コントロールが表示されます。
Destination   Destination フィールドは、Action の設定内容が適用されるヘッダー名を指定します。ヘッダールールは HTTP ヘッダー以外にも適用できるので、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 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