webがリクエストを受け取って画面に表示するまでの流れをおさらい。基本です。
全体の流れ
1 ユーザーがブラウザのURL欄に http://www.example.com/welcome.html と打ち込む
2 www.example.com のIPアドレスを調べる(この処理を行っているのがDNSサーバー)
3 www.example.com がわかったらこのホストの80番ポートにTCP接続をする(httpなので80番に接続)
4 TCP接続が成功したらhttpリクエストメッセージを送信する
HTTPリクエストメッセージの例(※ここではGET)
1 2 3 4 |
GET /weocome.html HTTP1.1 メソッドは通常GET Host:www.example.com Accept-Language:ja 改行コードがあってはじめて終わりを示すことができる |
GETとPOSTの使い分け
GET
- URLで保存ができる
- 主に検索系のパラメータなど
- 一般的には参照に用いること
- 送るデータに限界があること
POST
- 更新をするデータを送信するとき
- 個人情報などが変数に含まれるとき
- 変数の量が非常に多いとき(※GETは文字数制限があります。)
GETとPOSTの使い分け ついでにPUTとDELETE
GETとPOSTの違い
わわわのIT用語辞典 「GETメソッド」と「POSTメソッド」の違い
5 webサーバーがリクエストを解釈し、レスポンスを返す
HTTPレスポンスの例(ブラウザのデバッグ機能で見れる)
1 2 3 4 5 6 7 8 |
HTTP1.1 200OK 成功メッセージ Date ここに時間が来る Server Apache2.4.99 Content-Length:100 Content-type:text/html 通常のhtmlファイルはこの形式 Connection:closen ここで改行が入りヘッダーの内容が終わっていることを示す HTMLボディ(通常のHTMLに相当する内容)が入る |
通常リクエストとレスポンスのやりとりはステートレス(以前の状態を保持しない)だが、クッキーを使用することにより、セッションを成立させているようにみせることができる。
参考文献
全体的な流れはこちら
SoftWare Design 10月号
HTTPリクエストのやりとりについて
とほほのWWW入門 HTTP入門
ステートレス、ステートフルについて
ステートフル ステートレスとはどういうことか