ここでは、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タブとなっています。各機能の概要を以下に示します:
機能名 | 説明 |
---|---|
Parsed | HTTP(S)リクエストの一部を手入力して、発行する機能です。 手動でHTTP(S)リクエストを作成したい場合は、通常はこのタブで事足ります。 |
Raw | 生のHTTP(S)リクエストを入力して、発行する機能です。 HTTP(S)通信ログからそのままコピペ→リクエスト発行したい場合は、 こちらの方が簡単にHTTP(S)リクエストを発行できます。 |
Scratchpad | 特定のHTTP(S)リクエストを簡単に発行する機能です。 リクエスト内容を修正してから発行することも可能です。 |
Options | 上記3機能の挙動を設定できる機能です (リダイレクトを追跡するか否か等)。 |
各機能は、以降で説明します。
【Composer】Parsed機能
Composer機能の中では、最もよく使います。HTTP(S)リクエストを作りやすい様にUI設計されています。
HTTP(S)リクエスト作成・送信方法
以下の手順で作成します(画像にも手順を記載しています):
- 「Composer」タブを選択
- 「Parsed」タブを選択
- HTTP(S)メソッド、URL、HTTP(S)のバージョンを入力
プルダウンでも入力できます。 - HTTP(S)ヘッダに入れる情報を入力
- HTTP(S)リクエストボディに入れる情報を入力
- (ファイルをアップロードする場合) 「Upload file…」を選択
ファイルをアップロードする必要がなければ、この手順はスキップしてください。 - 「Execute」ボタンを選択
作成したHTTP(S)リクエストを対象のサーバに送信します。
キャプチャ済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という別の機能を使います。
具体的な手順は、以下の通りです:
- HTTP(S)リクエストを作成
- 「Shift」キーを押しつつ「Execute」ボタンを選択
- 予め用意したレスポンスファイルを選択→「Run to Completion」を選択
HTTP(S)レスポンスがFiddlerに返ります。
1. HTTP(S)リクエストを作成
HTTP(S)リクエストをParsedタブ上に作成します。
2. 「Shift」キーを押しつつ「Execute」ボタンを選択
「Shift」キーを押しつつ「Execute」ボタンを選択します。ボタン選択後、画面がInspectorsタブに移ります。 Inspectors 機能は、キャプチャしたHTTP(S)通信の詳細が確認できる機能です。
3. 予め用意したレスポンスファイルを選択→「Run to Completion」を選択
Inspectorsタブの下で、Fiddlerが止めていることが分かります(赤色で表示されています)。この状態は、HTTP(S)リクエストをサーバに送信する直前で止まっています。ここから進めるには3つの選択肢があります。
- 「Break on Response」を選択
リクエストを送信し、レスポンスがサーバから返ってきた後、一時停止(ブレーク)。レスポンスを直接修正するか、レスポンスファイルの内容に変更して、Fiddlerに返す - 「Run to Completion」を選択
リクエストを送信し、レスポンスがサーバから返ってきた後、何もせずに応答を返す - 画面右下のプルダウンからレスポンス(ファイル)を選択→「Run to Completion」を選択
リクエストを送信し、レスポンス内容を選択したレスポンスファイルで書き換えて、Fiddlerに返す
今回は、3つ目の選択肢で進めます。レスポンスファイルは、「Fiddlerインストールディレクトリ\ResponseTemplates」以下に保管されています。ここにファイルを追加すれば、Fiddler側で自動的にファイルを読み込み、以下の様にレスポンスとして選択できる様になります。
レスポンス部分に、選択したFiddlerの画像が表示されます。
繰り返しになりますが、この機能を使用して、HTTP(S)レスポンスの内容を書き換えても、戻り先がFiddlerのため、あまり意味はありません。WebアプリへのHTTP(S)レスポンスの内容を書き換えたい場合は、AutoResponderを使用してください。
【Composer】Raw機能
HTTP(S)リクエストをそのまま記述して発行する場合に使います。HTTP(S)リクエストをログからコピペして発行したい場合に重宝します。
HTTP(S)リクエスト作成・送信方法
以下の手順で作成します(画像にも手順を記載しています):
- 「Composer」タブを選択
- 「Raw」タブを選択
- 生HTTP(S)リクエストを入力
- 「Execute」ボタンを選択
作成したHTTP(S)リクエストを対象のサーバに送信します
キャプチャ済HTTP(S)リクエストを修正する方法
Parsedタブ同様、画面左のHTTP(S)リクエスト一覧から必要なものをRawタブ内にドラッグアンドドロップすることにより、該当のHTTP(S)リクエスト内容を表示できます。発行済のHTTP(S)リクエストを少し修正して、再送信したい場合にはこの方法が便利です。
【Composer】Scratchpad機能
特定のHTTP(S)リクエストを簡単に発行できる様にするものです。リクエスト内容を修正してから発行することも可能です。複数のHTTP(S)リクエストを少しずつ修正して送信したい場合に便利です。
HTTP(S)リクエスト作成・送信方法
以下の手順で作成します(画像にも手順を記載しています):
- 「Composer」タブを選択
- 「Raw」タブを選択
- 生HTTP(S)リクエストを入力・トリプルクリックで選択
- 「Execute」ボタンを選択
作成したHTTP(S)リクエストを対象のサーバに送信します
【Composer】Options設定
Optionsタブは、その名の通り、Composer機能の設定を行う画面です。
各オプションを説明します。
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機能の説明は以上です。