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 <---- データの最終変更日。 <---- ヘッダとデータの境界を表す、空行。