公開[佐藤匡剛,@IT]Webアプリケーションでは、通常Webブラウザを使って動作確認をしながら開発を進めていくことでしょう。Cookieや認証などHTTPヘッダに含まれる情報を使ったプログラムを作っている場合や、ファイルアップロードなどの際にPOSTフォームで送信されるデータの中身を確認したい場合には、Webブラウザとサーバとでやり取りされている生のHTTPメッセージの内容を確認したくなります。Webブラウザでは、HTMLソースの閲覧はできますが、ヘッダ情報も含んだHTTPメッセージを見ることはできません。TCPモニタ」(以降tcpmon)です。tcpmonを使えば、Webブラウザとサーバ間で送受信されるHTTPメッセージをモニタリングすることができます。tcpmonは、ApacheのWebサービスプロジェクトAxisの付属ツールとして提供されているものです。本来の用途は、Webサービスでやり取りされるSOAPメッセージをモニタリングするためのものですが、独立したTCPモニタとして完成されており、Webアプリケーション開発に十分役立てることができます。注:筆者が調査した限りでは、先ごろ正式リリースされたJ2SE5.0ではtcpmonは動かないようです(執筆時点)。本稿では、J2SE1.4.2_05で動作確認を行っています。セットアップtcpmonは通常のJavaプログラムです。プログラム本体が含まれるjarファイルをクラスパスへ通すだけで、javaコマンドから実行できます。・http://ws.apache.org/axis/ダウンロードした圧縮ファイルを解凍してできるフォルダ「axis-x_x\lib」から、ファイル「axis.jar」を取り出し、適当な場所へ保存してください。Javaの拡張フォルダへ保存しておけば、tcpmonの起動毎にクラスパスを設定しなくてよいので便利です。本稿では、説明のために敢えて拡張フォルダへは置かず、コマンドを実行するカレントフォルダに置くことにします。使い方tcpmonの起動は以下のようにコマンドを実行します。org.apache.axis.utils.tcpmonすると、画面1のようなウィンドウが立ち上がります。本稿では、「1234」と入力します。#」部分)を入力します。本稿では、ターゲットを仮に「www.wings.msn.to」(WINGSプロジェクトのWebサイト)とします。プロトコルはHTTPですので、ポート番号は「80」になります。ブラウザは、ここで指定したtcpmonのポート番号へアクセスすることで、tcpmonを経由したターゲットのホストとの通信を行うことになります。画面1上記データを入力し終えたら、画面一番下にある「Add」ボタンを押してみましょう。1234」というタブが作られます。これで、HTTPをモニタリングする準備は完了です(画面2)。画面2ブラウザから、「http://localhost:1234/」へアクセスしてみましょう。Webブラウザには、WINGSプロジェクトのTOPページが表示されるはずです(画面3)。tcpmonでは、このときのHTTPメッセージの送受信がモニタされており、以下のようにしてHTTPメッセージの全文を見ることができます。画面下部の上段がHTTPリクエスト、下段がHTTPレスポンスです。画面3なお、本稿ではターゲットをあらかじめ定めておくリスナ方式での使い方を説明しましたが、HTTPプロキシとして動作させることも可能です。プロキシ方式の場合、Webブラウザで送受信されるすべてのHTTPメッセージをモニタリングすることができます。プロキシとして利用する場合は、「Admin」画面でtcpmonが利用するポート番号を設定し、次に「Listener」の代わりに「Proxy」を選択するだけです。最後に、Webブラウザで通常のHTTPプロキシを登録する場合と同様にして、tcpmonのプロキシを登録します。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。