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は文字数制限があります。)

http://scene-live.com/page.php?page=27
http://qiita.com/qiita_taro/items/66f2930c5d1cc10722e7
http://write-remember.com/archives/2530/
http://wa3.i-3-i.info/diff7method.html

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

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

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

参考文献

全体的な流れはこちら

SoftWare Design 10月号

HTTPリクエストのやりとりについて
http://www.tohoho-web.com/ex/http.htm

ステートレス、ステートフルについて
http://blog.sojiro.me/blog/2014/09/13/stateful-and-stateless/

 

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

執筆者:


comment

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

関連記事

no image

mod_aliasに関して

同一ドメインでパスによってルートディレクトを分けたい時。 この場合、apacheの設定ファイルをいじることになります。 一般的にはhttpd.confではなく*.confと言った設定ファイルを使い、エ …

no image

apacheでのバーチャルホストの設定

このブログを旧サイトから移管し、同一ホストで別々のドメインを運用することになったので、バーチャルホストの設定を行いました。 Contents1 設定方法1.1 http.conf1.2 実際のバーチャ …

no image

laravel+vessel

現場のリーダー的な方に進められてVesselというDockerのインストールなどをサポートするツールを触ってみました。 特にlaravelのインストールなどに向いていますが、laravelでなくとも使 …

no image

clamAV

ウイルスソフトclamAVのインストールと使用法について Contents1 インストール1.1 CentOS61.2 CentOS72 スキャン実行の設定に関して インストール CentOS6 [c …

no image

set,ifディレクティブ,変数に関して

これまで基本的なnginxの設定についてみてきましたが、今回はset,ifディレクティブについてみていきます。 Contents1 変数とset2 error_page3 名前付きlocation 変 …