WireSharkで見るWeb通信講座(HTTP編)

ブラウザなどで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通信を支える部分を見ていきます。

コメントを残す

メールアドレスが公開されることはありません。