このサイトは、2011年6月まで http://wiredvision.jp/ で公開されていたWIRED VISIONのコンテンツをアーカイブとして公開しているサイトです。

Web2.0時代の情報発信を考える

時代が要求する情報発信型Webサイト 仮想専用サーバ「SuitePRO V2」が情報発信を加速する

いまさら聞けない!?Webサーバの基礎の基礎

2008年4月 2日

  • 1/2
  • 次のページ

Webサイト構築の基礎知識「HTTP」編

はじめに、Webサーバの基本的な通信プロトコルであるHTTP(HyperText Transfer Protocol)を介して、WebブラウザとWebサーバがどのように通信を行うのかをおさらいしておきたい。

一般的によく耳にするWWW(World Wide Web)は、WebブラウザとWebサーバがHTTPで通信することで実現する、インターネット上に構築された分散型のドキュメント共有システムだ。基本の動作はとてもシンプルで、クライアントであるWebブラウザが各種リクエストを出すと、Webサーバがそれに対するレスポンスを返す、というだけのものだ。

図1 HTTP

実際にどのように通信しているか理解するために、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サーバに対してより高度なカスタマイズができるようになる。

  • 1/2
  • 次のページ
フィードを登録する

前の記事

次の記事

Web2.0時代の情報発信を考える

増田(maskin)真樹

IT/NETリサーチャーを経て、ライターとして独立。多数の媒体で執筆活動後、米国シリコンバレーでガレージ起業に参画。帰国後、関心空間、nileport、ソニーblog、@cosmeなど多数のサービスに関与。