HTTP (HyperText Transfer Protocol)
【エッチ・ティ・ティ・ピー】
インターネットのWebサービスにおいて、WebサーバーとWebクライアントの間で情報交換を行うための通信プロトコル。
HTTPは単純なリモートファイル転送プロトコルで、WebクライアントとWebサーバの間で任意のデータを送受信できるようにするものである。電子メールの送受信プロトコルであるPOP/SMTPのように認証が必須というわけではなく(必要なら、HTTPでも認証を要求することは可能)、また交換されるデータについても、それがキャラクタコードであろうと、画像や音声データなどのバイナリデータであろうと、いっさいの変換処理などは加えず、そのままデータ転送を行う。周知のとおり、Webでは、文字だけでなく、静止画像や動画、音声など、さまざまな情報を表示(再生)できるのだが、これらをどう処理するかは完全にWebクライアントの仕事であり、HTTPプロトコル的には特にデータの種類を意識した機能は用意されていない。単純ではあるが、むしろこうした自由度の高さが、Webを利用した情報サービスの普及を進めたと考えることができる。実際に表示(再生)する以外のデータとしては、交換するファイルの各種属性(ファイルのサイズやファイルタイプ、ファイルの更新日時など)をやり取りする。
HTTPによる通常のファイル転送では、WebクライアントからWebサーバへのデータ取得のリクエストと、これにWebサーバが応じるレスポンスの組によって1回の処理が完結する。Webサーバは、クライアントからの要求を解釈し、必要なデータをクライアントにレスポンスとして送り返す。たとえば、
GET /default.htm HTTP/1.0
というリクエストがWebクライアントからサーバに送られる。ここでGETはリクエストタイプ、「/default.htm」はリクエストするファイルの名前、「HTTP/1.0」はHTTPのバージョンである。このリクエストをサーバが受け取ると、
HTTP/1.0 200 OK
という応答に続き、リクエストされたdefault.htmの内容がサーバからクライアントに送信される。ここで「200 OK」というのはステータスコードで、これは受け取ったGETリクエストの処理が正しく行われたことを示すものである(エラーが発生した場合などはその旨のステータスコードが返される)。
HTTP 1.0では、リクエストとレスポンスによる1回の通信が終了すると、コネクションは切断される。このため画像データなど、Webページ内に多数の要素があると、1つのWebページのデータを取得するために、コネクションを多数オープン/クローズしなければならない。これに対し次バージョンのHTTP 1.1では、1回のコネクションで複数のリクエスト/レスポンスを行えるようにする「永続接続(Persistent Connections)」の機能が追加された。またこれ以外にもHTTP 1.1では、マルチホーム(1つのIPアドレスにより、複数のWebサーバを運営可能にする機能)や、キャッシュ制御機能などが追加されている。
Copyright (C) 2000-2007 Digital Advantage Corp.