HTTP通信の中身は、基本的にテキストベース。

ただし、テキストを使ってHTTP通信を開始するには、
TCP/IP通信でサーバーとクライアントが接続されている必要がある。

HTTPだけでは、URLからIPアドレスへの変換や、サーバーへの経路探索、
コネクションの確立などの動作はできない。

つまり、HTTPというのはTCP/IPで接続された上を、
テキストでやり取りする仕組みといえる。

メールで使われているプロトコルのSMTPやPOP3なども同様。

HTTP通信の中身を確認するためには、
  1. ブラウザとサーバー間をモニタリングする
  2. 手動でサーバーとやり取りする
がある。

ブラウザとサーバー感をモニタリングする

TCP/IPのモニタリングソフトを使ってブラウザなどのアプリケーションが
Webサーバーとどのような通信を行なっているかを確認する。

モニタリングソフトを使うと、実際に
  • ブラウザがWebサーバーに送っているリクエスト
  • Webサーバーがブラウザに返しているレスポンス
を確認できる。

モニタリングソフトは基本的にHTTだけを監視するわけではなく、
TCP/IP通信全体を監視するため、慣れるまで必要な通信を探し出すのは
少し大変かもしれない…

TCP/IPをモニタリングすることで、
「PCは想像以上に様々な通信を裏で行なっている」
ことに気づくと思う。


手動でサーバーとやり取りする

"TeraTerm"や"Putty"などのTelnetやSSHクライアントソフトを利用して行う。
接続先として、WebサーバーのURLまたはIPアドレスとポート番号「80」を指定し接続する。

そして、表示される画面上に
"GET / HTTP/1.0"
と入力して、「Enter」を入力すると、WebサーバーからレスポンスやHTTPヘッダー、
要求されたページのHTMLデータがテキストで返ってくる。

ただし、HTTPの接続は持続的な接続をしないため、サーバー側がHTMLデータの
レスポンス送信が終わると切断される。

この影響で、クライアントソフトによっては、通信終了時にウィンドウが閉じてしまう場合がある。
通信終了に閉じる機能を無効化するオプションがあれば、設定しておくことをオススメしたい。


クライアントソフトを使わずに、C#やVisual Basicなどのプログラミング言語を使って
HTTPによる通信を行う場合、ソケット通信という形でサーバーと接続し、GETなどの
HTTP命令をテキストで送信すればWEBサーバーと通信できる。