skillup

技術ブログ

サーバー・ネットワーク

webサーバーがどのように動いているか(GETとPOST)

投稿日:2016年9月25日 更新日:

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)

GETとPOSTの使い分け

GET

  • URLで保存ができる
  • 主に検索系のパラメータなど
  • 一般的には参照に用いること
  • 送るデータに限界があること

POST 

  • 更新をするデータを送信するとき
  • 個人情報などが変数に含まれるとき
  • 変数の量が非常に多いとき(※GETは文字数制限があります。)

GETとPOSTの使い分け ついでにPUTとDELETE
GETとPOSTの違い
わわわのIT用語辞典 「GETメソッド」と「POSTメソッド」の違い

5 webサーバーがリクエストを解釈し、レスポンスを返す

HTTPレスポンスの例(ブラウザのデバッグ機能で見れる)

通常リクエストとレスポンスのやりとりはステートレス(以前の状態を保持しない)だが、クッキーを使用することにより、セッションを成立させているようにみせることができる。

参考文献

全体的な流れはこちら

SoftWare Design 10月号

HTTPリクエストのやりとりについて
とほほのWWW入門 HTTP入門

ステートレス、ステートフルについて
ステートフル ステートレスとはどういうことか

-サーバー・ネットワーク
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

PHPMailerに関して(PHPのメール送信)

PHPのMailライブラリに関して。 今までmb_send_mailとかで誤魔化してましたが、以下のようにライブラリで送るケースのサンプル。 https://github.com/umanari145 …

no image

dockerコマンドについて再考(ttyや/bin/bashなど)

Contents1 ttyオプションに関して2 docker execコマンドに関して2.1 ログインしないパターン2.2 shellに関して ttyオプションに関して dockerでnodeを起動さ …

no image

PHP7に関して

先週きづいたのですが、PHPが5.6から7になりましたね。 まあ当分はまだPHP5で開発していきますが、herokuがいきなり7になり、アプリが動かないということが起こりました。 7対応させたかったん …

no image

chefのインストール

以前からずっと課題になっていたchefのインストールについてです。 まだ全然わかっていませんが、なんとかvagrantからのインストールをすることができましたのでメモします。 chefでの環境構築とい …

no image

メールの文字化け対策

メールの文字コードに関して、色々ごまかしながらやってましたが真面目に取り組む必要があり、ここでメモ。 Contents1 前提条件2 ヘッダー部分3 メール本文3.1 Content-Transfer …