2006 年 8 月 24 日 19 時 10 分

Fiddler: HTTP デバッグツール


このアーカイブは同期化されません。 mixi の日記が更新されても、このアーカイブには反映されません。


[写真]


HTTP の通信内容を調べるのには色々な方法がある。
昔からよく行われているのは、
telnet を利用して直接対話してみるという方法だが、
これは今から学ぼうとする人にはちょいと敷居が高い。

例えば、プログラミングを学ぶ際に、
いきなりリファレンスを読み出す人は稀なわけで、
大抵は、サンプルコードを見ながらつ覚えていくだろう。

HTTP などの通信プロトコルを学ぶ際も同じことが言える。
まずは、サンプルを見ながら、
どういう風に通信が進んでいるか確認すれば良い。

Web ブラウザを使って mixi にアクセスしてる時点で、
絶対に HTTP で通信しているわけなので、
通信のサンプルはいくらでもある。

つまり、ブラウザが通信している内容が見えれば、
それがそのままちょうど良いサンプルとなるわけだ。
では、それを達成するためのツールを 1 つ紹介しよう。

■ Fiddler HTTP Debugger
http://www.fiddlertool.com

Fiddler は、HTTP の通信内容を捕捉し、それを解析して
HTTP やデータに関する情報を表示してくれるツールである。
HTTP のデバッガとしての機能も備えているので、
Web システムを開発する際の手助けにもなるはずだ。

このツールには、Microsoft の著作権表示が入っている。
Microsoft の公式サイトで公開しているわけではないが、
動作に関してはかなり信頼できるのではないだろうか。

英語のツールではあるが、慣れればそれほど難しくない。
日本語版の Windows にインストールしても大丈夫である。

Fiddler は Microsoft .NET Framework 1.1 を必要とするので、、
ない場合は Windows Update 等からインストールしておくこと。

ではインストールしてみよう。上記 URL にアクセスし、
「Visit the Fiddler Download Page...」をたどり、
「Install Fiddler v1.2」からダウンロードして実行。

インストールは、右下のボタンを押すだけ。
「I Agree」、「Install」、「Close」の 3 回で終わる。
その後勝手にページが開くが、これは閉じて OK である。

スタートメニューに登録されるので、Fiddler を実行。
Fiddler を起動すると、既定で自らを
WININET の HTTP Proxy としてシステムに登録するので、
Internet Explorer 等のブラウザを使う場合は、
特に何も設定することなく利用することができる。

さて、Internet Explorer を起動するか、
下のリンクをクリックしてアクセスしてみよう。
以下は、RFC を発行している団体のサイトだ。
シンプルな Web ページなので、サンプルに適している。

■ RFC-Editor Webpage
http://www.rfc-editor.org

Internet Explorer で開いてページが表示された後、
Fiddler のウィンドウに切り替えてみよう。
左の一覧に 6 個程度の項目が追加されたはずだ。
項目の数だけ、HTTP による通信が行われたことを意味する。

まず、左の一覧から Host が www.rfc-editor.org で、
URL が / となっているものを選択する。
写真では、1 と番号が付いている項目である。

そして、右のタブの中央「Session Inspector」を選ぶ。
上下 2 つに分かれて表示されるが、
上側がクライアントが送信したもの、
下側がサーバから受信したものである。

ごちゃごちゃ書いていてややこしいので、
とりあえずは上側のタブから「Raw」を選ぶ、
下側も同じように、「Raw」を選ぶ。
日記に載せている写真はこの状態だ。

さて、「Raw」というのは生とか未加工という意味だ。
つまり、通信内容をそのまま表示しているのである。

サーバが返した内容に、HTML があることは分かるが、
返されているのは HTML だけではなく、その前に
「HTTP/1.1 200 OK」などの文字が見える。
これは、ブラウザでソースを表示しても見えない部分だ。

また、上には、「GET / HTTP/1.1」などの文字が見える。
これはクライアントがサーバに送信している内容だが、
ここに URL などは見当たらない。



Copyright (c) 1994-2007 Project Loafer. All rights reserved.