いまさら聞けない!?Webサーバの基礎の基礎
2008年4月 2日
Webサイト構築の基礎知識「HTTP」編
はじめに、Webサーバの基本的な通信プロトコルであるHTTP(HyperText Transfer Protocol)を介して、WebブラウザとWebサーバがどのように通信を行うのかをおさらいしておきたい。
一般的によく耳にするWWW(World Wide Web)は、WebブラウザとWebサーバがHTTPで通信することで実現する、インターネット上に構築された分散型のドキュメント共有システムだ。基本の動作はとてもシンプルで、クライアントであるWebブラウザが各種リクエストを出すと、Webサーバがそれに対するレスポンスを返す、というだけのものだ。
実際にどのように通信しているか理解するために、telnetを使い、HTTPでWebサーバと通信してみてみよう。以下のように、接続先のドメイン名(この例ではexample.com、どこでも構わない)とWebサーバのポート番号(80がよく使われる)を指定してtelnetを実行すると、下記のように表示され入力待ち状態となる。
[maskin@ns ~]$ telnet example.com 80 Trying 208.77.188.166... Connected to example.com. Escape character is '^]'
HTTPでは、GET、HEAD、POSTといったメソッドが使えるが、ここではGETメソッドを使って、Webサーバのルートドキュメントである「/」を取得してみよう。方法は簡単、入力待ちのコマンドラインに以下のようにタイプすればいい。なお、HTTPはバージョン1.1を使うことを前提とする。
GET / HTTP/1.1 Host: example.com User-Agent: Mozilla/5.0 Accept: text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 Accept-Language: ja,en;q=0.7,en-us;q=0.3 Accept-Encoding: gzip,deflate Accept-Charset: ISO-2022-JP,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive (空行)
入力した内容を説明しよう。
最初にGETメソッドをリクエストラインとして指定し、次行以降にはヘッダー情報として、Webクライアントの情報を指定する。User-AgentでMozilla/5.0というブラウザでアクセスしていることにし、受け取れるファイルはAcceptでtext/html形式などを指定した。通常Webブラウザが自動で送信する情報を手動で送っているわけだ。
最後に空行の状態でEnterを押すとすべてのリクエスト情報が入力されたことになり、example.comがレスポンスを返してくる。
例えば以下のようなレスポンスだ。ここでは、最初の行にあるステータスラインを見ると、HTTPバージョン1.1を使って、ステータスコードは200であり、接続が確立(OK)されたことを表している。一方で、Webサーバからのレスポンスにもヘッダー情報があるのがわかるだろうか。例えば「Apache/2.2.3 (CentOS)」を見ることで、使っているWebサーバなどが読み取れる。
HTTP/1.1 200 OK Date: Tue, 18 Mar 2008 14:50:03 GMT Server: Apache/2.2.3 (CentOS) Last-Modified: Tue, 15 Nov 2005 13:24:10 GMT ETag: "280100-1b6-80bfd280" Accept-Ranges: bytes Content-Length: 438 Connection: close Content-Type: text/html; charset=UTF-8 (以下、HTMLドキュメントの内容が続くが、省略)
このように、WebブラウザとWebサーバはテキストベースの通信をおこない、様々なヘッダー情報を送受信することで、Webサイトにおける一連の処理を実現していることがお分かりいただけただろうか。Webサーバが、Webブラウザから送られてくるヘッダー情報をどのように扱うかは、Webサーバをカスタマイズすることで変えることができる。HTTPの仕様についての理解が深まると、Webサーバに対してより高度なカスタマイズができるようになる。
フィードを登録する |
---|
Web2.0時代の情報発信を考える
過去の記事
- デザインや機能だけでは勝負できない時代を勝ち抜く2008年4月25日
- MTOSに触れてみよう2008年4月25日
- SuitePRO V2にMTOSをインストールする2008年4月23日
- SuitePRO V2にMTOSをインストールする準備をしよう2008年4月23日
- MTOSで構築する情報発信型Webサイト2008年4月23日