Fiddler の勉強会に行って来ました。 Fiddler は HTTP の通信データを観たり、書き換えたりする事が出来るツールです。
イベントページ
はじめての Fiddler reloaded | Peatix
http://peatix.com/event/55312?utm_campaign=recommend&utm_medium=email&utm_source=55312&utm_content=7893
資料ページ
はじめての Fiddler
http://www.hebikuzure.com/fiddler/
Fiddler Scriptデモ
http://www.slideshare.net/hagurese/fiddler-script-38509440
書籍
- 作者: Eric Lawrence,日本マイクロソフト株式会社エバンジェリスト物江修,長尾高弘
- 出版社/メーカー: オライリージャパン
- 発売日: 2013/05/25
- メディア: 大型本
- この商品を含むブログ (4件) を見る
感想
- 今のところ Windows 版しか無いのが残念( Mac/Linux も有るけど現在α版)。
- レスポンスを返すまでの時間を遅らせる機能が便利そう。この機能を使えばサーバのレスポンスが遅い時のテストが出来る!!
- 指定のURLへのアクセスが有った時に別のファイル(ローカルのファイル)を指定可能なのが便利そう。講師の方はこの機能を使うと JavaScript のライブラリのバージョンを上げる時に事前に本番環境で確認出来るという使い方を紹介されてました。確かにその使い方は便利そう。
講演内容のメモ
- Fiddler はWebデバッキングプロキシ
- Fiddler は起動した瞬間に既にキャプチャを開始している。
- 起動した画面の左下に「Capturing」の文字が表示されていたらキャプチャ中。そこをクリックするとキャプチャの停止も可能。 F12 で有効、無効を切り替える事も可能。
- 最初に起動した時には Windows のシステムプロキシとして動作する。
- 「Capturing」の文字の隣の「All Processess」の所をクリックするとキャプチャ対象の範囲を指定出来る。
- 「Web Browsers」は有名なブラウザのみにフィルタリング。有名でない個人が制作したブラウザなどは対象外と成ることに注意。
- ツールバーの「Any Process」を使うとキャプチャしたいウィンドウを指定してキャプチャ出来る。
- 「Any Process」の表示に戻す時はアイコンの上で右クリック。
- ログはリクエストとレスポンスのセットでの表示に成っている事に注意。
- 赤文字はエラー
- Log タブは Fiddler 自身の動作ログ
タブについて
- Raw タブ:は生データ。Header、body の両方のデータを確認出来る。
- Text タブ:は body 部のテキストのみ表示。テキストとして解釈するのでバイナリの時に選択するとデータ0が出た所で表示が中断される。
- HexView タブ:16進ダンプで表示。
- WebView タブ:ブラウザ(IE)で表示した時と同じ表示。 HTML ファイルを開いた時には画像や CSS ファイルは含まれない為、多くの場合には実際の表示と異なる事に注意。
- Auth タブ:認証処理の確認。
- Cacheing タブ:キャッシュに対するステート情報を表示。
- Cookies タブ:クッキー情報。上のビューでサーバへ送る Cookie 、下がサーバから受け取った Cookie の情報。
表示されるデータの中の P3P Header にはペアレンタルコントロールなどの情報が含まれる。最近のブラウザではほとんど対応していない。年齢制限ツールなどでは利用されている。
- Transformer タブ: GZIP 圧縮や Chunked Transfoer-Encoding 関連の設定を行える。
Option 画面
【 General タブ】
- Automatically stream audio & videe:ストリーミングデータは完了フラグが来るまではクライアントアプリに渡されない。この機能からオーディオやビデオのストリーミングは貯めないでそのまま流す場合にはチェックを入れる。
【 HTTPS タブ】
- Capture HTTP CONNECTs : ここにチェックした時にはコネクション時の処理のみ表示される。接続後には暗号化通信の為、通常はデータを見ることが出来ない。
- Decypt HTTPS traffic:暗号化されたデータをデコードして表示。チェックを付けると自己証明書を使う様に変更される。
Remove Interception Certificates ボタンをクリックすると自己証明書を削除できる。
【 Connections タブ】
- Allow remote computers to connect:別のコンピュータからのトラフィックをチェック。別のコンピュータで動いているアプリのデバックを行う。
Act as system proxy on startup:チェックしているとアプリ起動時にシステムプロキシとして起動する
【 Gateway タブ】
元々プロキシが使われている環境で Fiddler を使う場合に使う。 Fiddler が使うプロキシの設定などを行う。
【 Extensions タブ】
拡張機能の管理。
【 Tool タブ】
Fiddler の中から呼び出されるアプリの設定を行う。
Filters
- Host がイントラネットだけ、インターネットだけにフィルタするなどのフィルタリングの設定を行う。
IE のサンドボックス
このサンドボックスではローカルコンピュータで実行されているサーバへの接続が禁止されている。その為、 Fiddler が使えない。
- このツールによる設定変更には管理者権限が必要。その為、 Fiddler を管理者権限で実行していない場合には設定変更時にエラーとなる。
クライアント証明書が必要なサイトの場合
- %USERPLOFILE%\Documents\Fiddler2 のフォルダに証明書ファイルを ClientCertificate.cer というファイル名で置いておく。
リクエストのリルート
- データ内容は変更せずに別のサーバへ送る。クライアントからは本番サーバへ繋いでいる様に思わせた状態でテストサーバへ接続する事が可能。アプリのデバック時などに便利。
リダイレクト
- クライアントに 306 でリダイレクトを行わせる。
リクエストを書き換えた時の動作を確認
- メニューから Edit > Unlock for Editing で内容を変更出来る様になる。
Unlock を解除した後にツールバーの Replay ボタンを押す事で書き換えた時の動作を確認出来る。
Automatic Breakpoint
メニューの「Rules > Automatic Breakpoints」。
- Before Responses/After Responses:全てのレスポンスの前や後にブレークポイントを設定
AutoResponder タブ
- Enable automatic responses: AutoResponder 有効、無効の切り替え。
- Unmatched requests passthrough:条件にマッチしなかったものはそのまま通過させたい場合にチェック。
使用しているJSのライブラリのバージョンを上げた時の動作などを実際にJSのファイルを変更する事無くテストが出来る。
ブレークポイント時の動作
ブレーク時の Inspectors タブ。
- Break on Response:レスポンスを受け取って再度ブレークする
- フィルタ機能は画面にはデータが表示されないがデータの通信自体は行われている。テスト中に余計なサイトに接続しない様な制御の為にフィルタは使えない。