wwwサーバとwww viewerとのデータのやりとりは、HTTPというプロトコルに 従って行われます。
HTTPプロトコルは、サーバとクライアント間に、コネクションを確立してから、 クライアントからのリクエストに対して、サーバが レスポンスを返すという形で、データのやりとりを行います。 一回のやりとりだけで、コネクションは、切断されます。
クライアントからのリクエストは、基本的に、行単位の人間が読める コマンドの形をしていますし、サーバからのレスポンスも、ヘッダ部分は、 ちゃんと人間が読めるようになっています。こうしたところは、SMTP(メイル) とかNNTP(ニュース)とかのプロトコルと共通しています。
HTTP/1.0は、現在の標準的なプロトコルです。
HTTP/1.0でのGETリクエストは、次のような形をしています。
GET /doc/index.html HTTP/1.0
<---- ここに空行が必要です。
もう少し一般的に言うと、HTTP/1.0のリクエストは、次のような形を しています。
リクエスト行 <---- Method URL HTTP/1.0
ヘッダ行達
.....
<---- ヘッダとデータ部分をわかつ空行。
[データ]
ここで、Methodというのは、GET,HEAD,POST,PUT...等です。
HTTP/1.0では、レスポンス・データの先頭に、次のようなヘッダが付けられます。
HTTP/1.0 200 Document follows <---- 200 は、サーバからの"OK"の応答。
MIME-Version: 1.0 <---- 依拠しているMIMEのバージョン。
Server: CERN/3.0 <---- サーバのタイプ。
Date: Saturday, 29-Jul-95 06:03:53 GMT <---- 日付。
Content-Type: text/html <---- データのMedia Typeを示す。
Content-Length: 1904 <---- データ部分の大きさを示す。
Last-Modified: Wednesday, 12-Jul-95 03:37:34 GMT <---- データの最終変更日。
<---- ヘッダとデータの境界を表す、空行。