Lunatic Sol

IT Tips

HTTP::Daemon を使った http トレース

2004-02-17 15:09:43 | Perl
先日 http リクエストのダンプという記事を書いた。今日はそのトレースをする必要があり、せっかくなので ActivePerl を使って試してみた。

C:\\>perl -MHTTP::Daemon -e 'warn HTTP::Daemon->new(LocalPort => 80)->accept->get_request->as_string'
Can't find string terminator "'" anywhere before EOF at -e line 1.
全然だめ。エラーになってしまう。ActivePerl のバージョンがまずい?パッケージがない?いや、エラーの内容からしてパッケージには問題はなさそう。ActivePerl にも問題はない。じゃ、Syntax?

ということでググってみたら W32 版 ActivePerl の場合 Single Quotation ではなくて -e の後は Double Quotatation で囲んだほうが良さそうだということが伺えた。ということでもういとどチャレンジ。
C:\\>perl -MHTTP::Daemon -e "warn HTTP::Daemon->new(LocalPort => 80)->accept->get_request->as_string"
GET http://www.google.co.jp/ HTTP/1.0
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Accept-Language: ja
Host: www.google.co.jp
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 1.0.3705)
Proxy-Connection: Keep-Alive
うん、確かにとれた。でも、一回こっきりなんだねぇ。ということで、ちょっと使い勝手が悪いかな。ヘッダをとりたいだけとかなら使えるかもしれない。例えばブラウザの User-Agent を調べたいとか。

あ、あと実はちょっと悩んでしまったんだけど、ブラウザの Proxy 設定で localhost:80 を指定してあげないとトレースできません。当然といえば当然なんでしょうが、なぜか悩んでしまった。。。

p.s. HTTP::Proxy を使った簡易 Proxy ネタも LindowsOS開発日記に書いていました。今度はそっちを試してみようかな。そっちの方が実は使いたい機能だと思うので。

最新の画像もっと見る