Webサーバ

Webサーバは、HTMLや画像などの情報をサーバにストックし、クライアントからの要求があると、ネットワーク経由で要求された情報をクライアントに送信する
現在、Webサーバで最も人気が高いサーバは、Apache

Webサーバの仕組み

Webサーバとクライアントとの間の通信は、HTTP (Hyper Text Transfer Protocol) と呼ばれるプロトコルによって行われる。その為、WebサーバはHTTPサーバとも呼ばれる。

  1. WebブラウザからWebサーバにリクエストを送信する
  2. WebサーバはWebブラウザのリクエストした処理を返す(レスポンス
WebブラウザからWebサーバへ送られるHTTPリクエスト
メソッド リクエスト URL HTTPバージョン

例)Webサーバに接続し、index.html ファイルを取得したい場合

GET /index.html HTTP/1.1
上記に対するレスポンス
HTTP/1.1 200 OK
Date: Wed, 3 Aug 2005 01:18:40 GMT
Server: Apache/2.0.52 (CentOS)
Last-Modified: Wed, 3 Aug 2005 01:18:30 GMT
ETag: "85105-27-d47f4b80"
Accept-Ranges: bytes
Content-Length: 39
Connection: close
Content-Type: text/html

<html><body>
Hello World!
</body></html>

前半をレスポンスヘッダ、後半をレスポンスボディと呼ぶ。レスポンスヘッダにはサーバからの情報が、レスポンスボディにはコンテンツ(HTMLデータや画像データなど)が含まれている。レスポンスヘッダ1行目にある数字は状態を表すステータスコード

コード 内容
1xx インフォメーション (Information)
100 リクエスト継続してもよい (Continue)
2xx 正常終了 (Success)
200 リクエスト成功 (OK)
3xx リダイレクト (Redirection)
4xx クライアントエラー (Client Error)
400 不正なリクエスト (Bad Request)
403 アクセス拒否 (Forbidden)
404 ページが存在しない (Not Found)
5xx サーバエラー (Server Error)
500 スクリプトエラーなどのサーバ内部エラー (Internal Server Error)
HTTPメソッド
メソッド 内容
GET 指定した URL のリソース (HTMLファイル、画像、プログラムの実行結果など)を取得する
HEAD 指定した URL からレスポンスヘッダのみを取得する
POST 指定した URL へデータを送信し処理を要求する
PUT 指定した URL へデータを送信し保存を要求する
DELETE 指定した URL のリソース削除を要求する