ブラウザなどでWebページを閲覧するとき、
どのような通信をしているのか、
WireSharkを使って見てみたいと思います。
〇キャプチャの取得
まずは、パケットキャプチャを取得。
WireSharkを起動
キャプチャするインターフェイスを選択
今は、無線LANを使っているので、
「WiFi」を選択。ダブルクリック。
→キャプチャ開始
キャプチャをとっている状態にして、
ブラウザで目的のWebページにアクセス。
今回は、このブログにアクセスする。
→ページが表示出来たらキャプチャ停止
フィルタバーに”http”と入力してEnter
HTTPの通信だけが表示される。
主に2つのパケットが確認できます。
GET / HTTP/1.1 → リクエスト
Webページのファイルをくれ。という要求。
HTTP/1.1 200 OK (text/html) → レスポンス
↑の要求に対する応答。
これらの内容を、まずはHTTPヘッダを中心に見ていきます。
〇リクエスト
ヘッダ部にはHTTP通信に関する様々な情報が入っています。
まず押さえておきたいのは下記2つ。
●リクエストライン(GET / HTTP/1.1)
リクエストの主な内容を1行で表したもの。
リクエストラインの構成は下記の通り。
(メソッド) (URI) (HTTPのバージョン)
\r\nは改行コードなので気にしなくていい。
・メソッド(Method)
httpサーバーへの命令
GET:Webページ/ファイルを取得する場合
POST:クライアントからサーバーへデータを送る場合
など
・URI
サーバー内のパス(ディレクトリ、ファイル名)
今回は、”/”(ルートディレクトリ)を指定。
・HTTPのバージョン(Version)
この場合は、HTTP/1.1を使用している。
●ホスト名(Host)
サーバーのホスト名=FQDN
この場合は、”infra.salmon0852.com”
つまり、このリクエストは、
ホスト:”infra.salmon0852.com”に対して、
ルートディレクトリ”/”のページを、
HTTP/1.1で送るように指示したものである。
〇 レスポンス
◎ヘッダ部
●ステータスライン(HTTP/1.1 200 OK)
構成は下記の通り。
(HTTPのバージョン) (ステータスコード) (レスポンスフレーズ)
・HTTPのバージョン(Version)
リクエストと同様。
・ステータスコード/レスポンスフレーズ
200 OK とか、 404 Error とか。
ステータスコードについて、詳細は↓を参照。
https://digital-marketing.jp/seo/http-status-code/
◎データ部
htmlファイルのデータ(本体)が入っている。
(“<!DOCTYPE html> “から始まるテキストデータ。
実際には、複数のパケットに分割されて送られているが、
WireSharkでは、レスポンスパケットにまとめて表示される。)
このようにしてWebサイトのファイルをダウンロードし、
ブラウザでページを開くことができる。
今回は以上。
次回は、HTTP通信を支える部分を見ていきます。