HTTPプロトコルの紹介


HTTPプロトコル

HTTPによるデータの受け渡し形式

 HTTPでは,基本的に,以下のような形式でデータの引渡しを行います.


ヘッダ部

 区切り(空の行)

データ部

 データは,
  ・データの内容に関する情報や制御情報を記述したヘッダ部
  ・データ本体があるデータ部
に分かれ,この2つは何もない空の行によって区切られています.


ブラウザからサーバへの要求

 ブラウザからサーバに送られるページリクエスト情報の例です.
 このリクエストにはデータ部がないため,ヘッダ部と,ヘッダ部の終わりを示す「区切り(空の行)」が送られます.

GET / HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
Accept-Language: ja
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
Host: www.test.org
Connection: Keep-Alive
ヘッダ部
区切り

 さらに,ヘッダ部の中は,コマンドと情報に分かれます.

ブラウザからサーバへの要求(コマンド)

 コマンドは,上の例の太字の部分 GET / HTTP/1.1 になります.
 コマンドの主なものは,

GET
サーバへのページの要求.
POST
ブラウザからデータを送る.

があります.

 コマンドの次には,要求するページの指定が入ります.上の例では, / です.
 この部分は,ブラウザで指定した URL のうち,サーバ名を除いた部分が入ります.
 例えば,
   htttp://std.int-univ.com/ であれば /
   http//std.int-univ.com/test/index.html であれば /test/index.html
になります.

 最後に,この要求が HTTP プロトコルのどのバージョンにより送信されているかを示す情報が入ります.


サーバからブラウザへの応答

 サーバからは,ブラウザがリクエストしたページが送られてきます.
 ヘッダ部に,そのページに関する情報やサーバの情報が送られてきます.また,データ部には,ページ本体が入ります.

HTTP/1.1 200 OK
Date: Thu, 25 Jul 2002 14:49:01 GMT
Server: Apache/1.3.24 (Unix) mod_ssl/2.8.8 OpenSSL/0.9.6d PHP/4.1.2
Last-Modified: Fri, 14 Dec 2001 05:09:32 GMT
ETag: "45aa-707-3c19898c"
Accept-Ranges: bytes
Content-Length: 1799
Connection: close
Content-Type: text/html
ヘッダ部
区切り
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
........
データ部

 サーバからの応答に関しても,ステータスと情報の2つに分かれます.


サーバからブラウザへの応答(ステータス)

 ステータスは,上の例の HTTP/1.1 200 OK になります.
 この 200 OK の部分がステータスで,主に以下のステータスがあります.

コード    
200 OK 正常終了
400 Bad Request 不正な要求
401 Unauthorized 認証失敗
403 Forbidden アクセス禁止
404 Not Found ファイルがない