WEBサーバーの仕組み


サーバーとクライアント 

クライアント

クライアント・サーバシステムにおいて、サーバに対してサービスの依頼を行いその提供を受けるような、コンピュータまたはアプリケーションやプロセスのことをいう。サーバからサービスを受ける側を指す。
いつも使っているブラウザ(chromeとか)をクライアントと呼ぶ。

ブラウザとは

インターネット上のウェブ ページの情報を画面上に表示するための閲覧ソフト。また一般に、コンピュータのデータやプログラムを、画面上に文字や画像として表示するためのプログラムも言う。

サーバー

コンピュータの分野では、本来はソフトウェアの用語であり、クライアントサーバモデルにおいてクライアントからの要求に対して何らかのサービスを提供する役割を果たす側のプログラムを指す言葉である。HTTP サーバ、IMAP サーバ、X-Window サーバなど規模や形態などは様々ある。
また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、サーバと呼ぶ場合がある。

サーバーとクライアントの通信

いつも使っているブラウザ(chromeとか)をクライアントと呼ぶ。
例えば、下のURLを考えてみる。

http://qiita.com/shige0820

httpとは、通信方法を表す部分。
クライアントとサーバーはhttpを利用して通信している。 
電車で通勤とか、歩いてとかと同じです。
その通信手段をプロトコル(規格)と呼ぶ。 

httpの仕事

主に2つある。
Request : サーバーにデータをリクエストする。
Respose : サーバーがデータを返す。 

リクエストには、リクエスト行(メソッド、URI、HTTPバージョン)、ヘッダ、メッセージボディで構成。
レスポンスには、レスボンス行(HTTPバージョン、ステータスコード)、ヘッダ、メッセージボディで構成されている。 ステータスコードには、リクエストの処理結果を表す。200:成功 500:失敗など。

http メソッド

GET/POSTの2つ。
GET:サーバーからデータを受け取る。
POST:サーバーにデータを送る。

URLの読み方

http://qiita.com/shige0820

qiita.comは、サーバーの住所を表しています。
横浜市戸塚区~~~8丁目

/shige0820は、サーバーのどこのファイルを表示してほしいかを示している。
家のトイレを見せて欲しい。
家のキッチンを見せて欲しい。

実はクエリというものもある。

クエリ文字列
クエリ文字列とは、WebブラウザなどがWebサーバに送信するデータをURLの末尾に特定の形式で表記したもの。
Webアプリケーションなどでクライアントからサーバにパラメータを渡すのに使われる表記法で、URLの末尾に「?」マークを付け、続けて「名前=値」の形式で記述する。値が複数あるときは「&」で区切り、例えば http://example.com/foo/var.php?name1=value1&name2=value2 のように記述する。