DEV

Telerik Fiddler ComposerによるHTTP(S)リクエストの作成方法

10月 23, 2021

violin
Fiddler Composer機能によるHTTP(S)リクエストの作成方法

ここでは、Fiddler Classic(以下、Fiddler)のComposer機能の使い方について、詳細に説明します。

Fiddlerとはそもそも何か、また、Fiddler全般の使い方に関しては、以下の記事をご確認ください:

FiddlerのComposer機能を使用すると、HTTP(S)リクエストとレスポンスを手動で作成できます。

HTTP(S)レスポンスの作成(書き換え)は、Composer機能よりも、AutoResponder機能の方が実作業に適しています。詳細は後述します。

HTTP(S)リクエストとレスポンスを手動で作成して送信することにより、以下の様なことができます:

  • フロントエンドなしで、バックエンドの単体テストができる
  • バックエンドなしで、フロントエンドの単体テストができる
  • 再現が難しい不具合の事象を確認できる

FiddlerのAutoResponder機能がフロントエンド側の確認用であれば、Composer機能はバックエンド側の確認用といえます。

Composer機能について、詳細を見ていきましょう。

Composer機能一覧

Composerには4種類の機能があり、それぞれで実現できることが異なります。1機能1タブとなっています。各機能の概要を以下に示します:

機能名 説明
ParsedHTTP(S)リクエストの一部を手入力して、発行する機能です。
手動でHTTP(S)リクエストを作成したい場合は、通常はこのタブで事足ります。
Raw生のHTTP(S)リクエストを入力して、発行する機能です。
HTTP(S)通信ログからそのままコピペ→リクエスト発行したい場合は、
こちらの方が簡単にHTTP(S)リクエストを発行できます。
Scratchpad特定のHTTP(S)リクエストを簡単に発行する機能です。
リクエスト内容を修正してから発行することも可能です。
Options上記3機能の挙動を設定できる機能です
(リダイレクトを追跡するか否か等)。
Composer機能一覧
Composerの4つの機能
Composer機能

各機能は、以降で説明します。

【Composer】Parsed機能

Composer機能の中では、最もよく使います。HTTP(S)リクエストを作りやすい様にUI設計されています。

HTTP(S)リクエスト作成・送信方法

以下の手順で作成します(画像にも手順を記載しています):

  1. 「Composer」タブを選択
  2. 「Parsed」タブを選択
  3. HTTP(S)メソッド、URL、HTTP(S)のバージョンを入力
    プルダウンでも入力できます。
  4. HTTP(S)ヘッダに入れる情報を入力
  5. HTTP(S)リクエストボディに入れる情報を入力
  6. (ファイルをアップロードする場合) 「Upload file…」を選択
    ファイルをアップロードする必要がなければ、この手順はスキップしてください。
  7. 「Execute」ボタンを選択
    作成したHTTP(S)リクエストを対象のサーバに送信します。
Parsed機能の使い方

キャプチャ済HTTP(S)リクエストを修正する方法

画面左のキャプチャしたHTTP(S)リクエスト一覧を基に、HTTP(S)リクエストを作成することもできます。発行済のHTTP(S)リクエストの内容を少し修正して、再送信したい場合には、この方法が便利です。

キャプチャしたHTTP(S)リクエスト一覧からParsedタブ上にドラッグアンドドロップするだけでOK。

HTTP(S)レスポンスをFiddlerで書き換える方法

Composer機能では、HTTP(S)レスポンスも手動で作成(書き換え)することも可能です。Raw機能やScratchpad機能でも使用できます。

HTTP(S)レスポンスの手動作成(書き換え)はできますが、レスポンスの最終的な戻り先はFiddlerのため、この機能自体に意味はありません。戻り先がWebアプリであれば、意味があるのですが…。戻り先をアプリにしたい場合は、AutoResponderという別の機能を使います。

具体的な手順は、以下の通りです:

  1. HTTP(S)リクエストを作成
  2. 「Shift」キーを押しつつ「Execute」ボタンを選択
  3. 予め用意したレスポンスファイルを選択→「Run to Completion」を選択
    HTTP(S)レスポンスがFiddlerに返ります。

1. HTTP(S)リクエストを作成

HTTP(S)リクエストをParsedタブ上に作成します。

2. 「Shift」キーを押しつつ「Execute」ボタンを選択

「Shift」キーを押しつつ「Execute」ボタンを選択します。ボタン選択後、画面がInspectorsタブに移ります。 Inspectors 機能は、キャプチャしたHTTP(S)通信の詳細が確認できる機能です。

Shiftキーを押しながら、Executeボタンを選択
HTTP(S)レスポンスをFiddlerで書き換える最初のステップ

3. 予め用意したレスポンスファイルを選択→「Run to Completion」を選択

Inspectorsタブの下で、Fiddlerが止めていることが分かります(赤色で表示されています)。この状態は、HTTP(S)リクエストをサーバに送信する直前で止まっています。ここから進めるには3つの選択肢があります。

  1. 「Break on Response」を選択
    リクエストを送信し、レスポンスがサーバから返ってきた後、一時停止(ブレーク)。レスポンスを直接修正するか、レスポンスファイルの内容に変更して、Fiddlerに返す
  2. 「Run to Completion」を選択
    リクエストを送信し、レスポンスがサーバから返ってきた後、何もせずに応答を返す
  3. 画面右下のプルダウンからレスポンス(ファイル)を選択→「Run to Completion」を選択
    リクエストを送信し、レスポンス内容を選択したレスポンスファイルで書き換えて、Fiddlerに返す

今回は、3つ目の選択肢で進めます。レスポンスファイルは、「Fiddlerインストールディレクトリ\ResponseTemplates」以下に保管されています。ここにファイルを追加すれば、Fiddler側で自動的にファイルを読み込み、以下の様にレスポンスとして選択できる様になります。

HTTP(S)レスポンスをFiddlerで書き換えている画面

レスポンス部分に、選択したFiddlerの画像が表示されます。

Fiddler image
画面下部に選択したレスポンスファイルの内容(画像)が表示されている

繰り返しになりますが、この機能を使用して、HTTP(S)レスポンスの内容を書き換えても、戻り先がFiddlerのため、あまり意味はありません。WebアプリへのHTTP(S)レスポンスの内容を書き換えたい場合は、AutoResponderを使用してください。

【Composer】Raw機能

HTTP(S)リクエストをそのまま記述して発行する場合に使います。HTTP(S)リクエストをログからコピペして発行したい場合に重宝します。

HTTP(S)リクエスト作成・送信方法

以下の手順で作成します(画像にも手順を記載しています):

  1. 「Composer」タブを選択
  2. 「Raw」タブを選択
  3. 生HTTP(S)リクエストを入力
  4. 「Execute」ボタンを選択
    作成したHTTP(S)リクエストを対象のサーバに送信します
Rawタブを使用して、HTTP(S)リクエストを手動で作成する方法

キャプチャ済HTTP(S)リクエストを修正する方法

Parsedタブ同様、画面左のHTTP(S)リクエスト一覧から必要なものをRawタブ内にドラッグアンドドロップすることにより、該当のHTTP(S)リクエスト内容を表示できます。発行済のHTTP(S)リクエストを少し修正して、再送信したい場合にはこの方法が便利です。

【Composer】Scratchpad機能

特定のHTTP(S)リクエストを簡単に発行できる様にするものです。リクエスト内容を修正してから発行することも可能です。複数のHTTP(S)リクエストを少しずつ修正して送信したい場合に便利です。

HTTP(S)リクエスト作成・送信方法

以下の手順で作成します(画像にも手順を記載しています):

  1. 「Composer」タブを選択
  2. 「Raw」タブを選択
  3. 生HTTP(S)リクエストを入力・トリプルクリックで選択
  4. 「Execute」ボタンを選択
    作成したHTTP(S)リクエストを対象のサーバに送信します
Scratchpadタブを使用して、HTTP(S)リクエストを手動で作成する方法

【Composer】Options設定

Optionsタブは、その名の通り、Composer機能の設定を行う画面です。

Fiddler Composer Options設定
Options設定

各オプションを説明します。

Request Options

Request Optionsには、4つの設定があります。

  • Inspect Session(デフォルトOFF)
    ExecuteボタンでHTTP(S)リクエストを発行した直後に、Inspectorsタブを開きます。実行したHTTP(S)レスポンスをすぐに確認したい場合は便利です。Composer機能を使い続けたい場合は、あまり嬉しくない機能ですw
  • Fix Content-Length header(デフォルトON)
    HTTP(S)リクエスト内に、「Content-Length」が設定されている場合は、リクエストボディのサイズを再計算して設定します
  • Follow Redirects(デフォルトON)
    HTTP/3xxリダイレクトの応答があった場合は、その応答に従い、新しいリクエストを発行する様に試みます。「fiddler.composer.followredirects.max」の設定値までリダイレクトします。
  • Automatically Authenticate
    HTTP/401(認証が必要)やHTTP/407(プロキシ認証が必要)が応答され(NTLMユーザ認証やNegotiateプロトコルが必要な場合)、ユーザのWindowsログイン・資格情報を基に、自動的に応答を試みます

UI Options

「Tear off」ボタンを選択すると、Composer機能だけが別画面で表示されます。

Composer機能だけを別画面にした状態
Composer機能だけを別画面にした状態

Composer機能の説明は以上です。

【Fiddler関連記事一覧】

-DEV