HTTPリクエストは大きく以下の3つに分けられます。
リクエスト行には、Webサーバにどのような処理を
依頼するのかを伝える情報が含まれます。
例えばデータを送ってほしいという命令であれば、
「GET /index.html HTTP/1.1」といった情報がセットされます。
「/index.html」が送信要求のデータ、
「HTTP/1.1」はWebブラウザが対応しているHTTPのバージョンを意味します。
Webサーバへ要求する操作を表すメソッドと呼び、
GETの場合は「データの送信要求」を意味します。
HTTPリクエストのメソッドの種類には以下のようなものがあります。
メッセージヘッダーは対応している言語や
エンコードの方式などの情報がセットされます。
メッセージボディはWebサーバから情報をもらうのではなく、
WebブラウザがWebサーバにデータを送るときに場合に使用します。
HTTPレスポンスも大きく以下の3つに分けられます。
ステータス行にはWebサーバの処理結果(ステータスコード)が
セットされます。
処理が完了した場合は「HTTP/1.1 200 OK」といった情報が
セットされます。ステータスコードは3桁の数字で表して、
「200」であれば処理成功を意味します。
Webアクセスをしていて「404 Not Found」というメッセージを
見たことがある方も多いかもしれません。
これはデータが見つからないことを意味しています。
HTTPレスポンスのステータスコードの種類には
以下のような種類があります。
メッセージヘッダーにはWebブラウザやWebサーバの状態や
やりとりする情報がセットされます。
メッセージボディにはWebブラウザとWebサーバが
やりとりするHTMLデータが入ります。
実際にWiresharkでHTTPのやりとりを覗いてみましょう。
以下の画面はHTTPパケットのやりとりだけに絞った
パケットキャプチャの結果です。
「1」がHTTPリクエストで、「2」がHTTPレスポンスになります。
2行目以降もHTTPリクエストとHTTPレスポンスのやりとりが続いています。
HTTPパケットをキャプチャするのは、非常に簡単で、
Wiresharkでキャプチャを開始して、Webサーフィンするだけ。
皆様も実際に試してみてください。