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のメッセージボディ部にセットされる。

次回は

年明けからはHTMLをやります。

このブログの人気の投稿

11月17日(金)3コマ目

11月28日(火)3コマ目

11月21日(火)3コマ目