12月19日(火)3コマ目
今日、やったこと
HTTPパケット解析解説
今日のホワイトボード
HTTPヘッダは
文字列データ。1つ1つの文字列データの間に区切りのCR(0x0d)+LF(0x0a)がある。
|
| 図 HTTPヘッダは文字列データ |
パケット7 解析結果
この授業での重要なポイントは先頭のリクエストラインと最後のメッセージボディ部。
〇リクエストライン
HTTPヘッダは以下のリクエストラインから始まる。
POST /formtest/showall.php HTTP/1.1
リクエストラインの各項目は下表のとおり。
| POST | サーバーにHTTPのPOSTコマンドでリクエスト |
|---|---|
| /formtest/showall.php | リクエストするURL |
| HTTP/1.1 | サーバーとのやり取りに使うHTTPのバージョン |
これは、クライアント側のHTMLの<form>タグに
method=post
action=http://172.16.8.10/formtest/showall.php
と書かれているため、サーバーにPOSTコマンドで/formtest/showall.phpをリクエストする。
HTTPのバージョンは利用するWebブラウザ等で決まる。
〇メッセージボディ部
メッセージボディにはWebページで選択・入力した内容がある。
〇重要ポイント
POSTコマンドでサーバーへリクエストする際は、入力・選択内容はメッセージボディー部にセットされる。
![]() |
| 図 パケット7 HTTPヘッダ解析結果 |
パケット6 解析結果
〇リクエストライン
HTTPヘッダは以下のリクエストラインから始まる。
GET /formtest/showall.php HTTP/1.1?q1=hokkaido&q2=kishu&q3=both HTTP/1.1
リクエストラインの各項目は下表のとおり。
| GET | サーバーにHTTPのGETコマンドでリクエスト |
|---|---|
| /formtest/showall.php | リクエストするURL |
| ?q1=hokkaido&q2=kishu&q3=both | クエリパラメータ。Webフォーム上で入力・選択された内容 |
| HTTP/1.1 | サーバーとのやり取りに使うHTTPのバージョン |
これは、クライアント側のHTMLの<form>タグに
method=get
action=http://172.16.8.10/formtest/showall.php
と書かれているため、サーバーにGETコマンドで/formtest/showall.phpをリクエストする。
?以降はクエリパラメータと呼ばれる。Webフォーム上で入力・選択した内容が&区切りで書かれている。
HTTPのバージョンは利用するWebブラウザ等で決まる。
〇メッセージボディ部
メッセージボディにはなにもなし。
〇重要ポイント
GETコマンドでサーバーへリクエストする際は、入力・選択内容はリクエストラインにクエリパラメータとしてセットされる。
![]() |
| 図 パケット6 HTTPヘッダ解析結果 |
まとめ
HTTPにはGET、POSTの2種類のコマンドがある。それぞれ以下のように使い分けている。
| コマンド | 用途 |
|---|---|
| GETコマンド | 単純にページをリクエストする際に利用。 リクエストの際に渡したいデータがある場合はクエリパラメータで一緒に送信。 |
| POSTコマンド | 入力・選択内容を送信する際に利用。 ボタンクリックした際にサーバーに送信する際に使われる。 入力・選択データはHTTPのメッセージボディ部にセットされる。 |


