[Edit][Create New]
[ IndexPage / ネットとプログラミング / web296 / No28.txt ]

No28.txt

さて、先週までは、ブラウザからWebサーバーへのリクエストの内容を見てきま
したが、今回は逆にWebサーバーからブラウザへの返答(レスポンス)の内容を見
てみようを思います。

ところで、筆者は最近端末用マシンのOSをWindowsNT4.0からWindows2000に変更
したのですが、こちらのOSのtelnetは、WindowsNT付属のものと違いWebサーバー
への接続試験に使えるようです。

Windows2000をお持ちの方は、[スタート]メニューから、[プログラム]→[アク
セサリ]→[コマンド プロンプト]コマンド・プロンプトを起動したのち、

C:\> telnet web296.com 80

のように入力してください(「C:\>」はプロンプトですので入力する必要はあり
ません)

すると、画面が消去され、入力待ちになりますので、

GET /

と入力し、改行キーを押して下さい。web296のトップページのHTMLが画面に表
示されたと思います。

それでは早速、web296のWebサーバーに接続して、トップページを取得してみま
しょう。トップページの取得は、web296サーバー(web296.com)の80番ポートに
接続して、

GET /

でしたね。それでは結果を見てみましょう。

-----------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0022)http://www.web296.com/ -->
<HTML lang=ja><HEAD>
     :
     :(中略)
     :
</td></tr></table>
</BODY></HTML>
-----------------

おや? 単にHTMLが返されただけですね。実は、HTTP/0.9の仕様では、サーバー
からの返答は単にドキュメント本体がそのまま返されるだけだったのです。

ただ、それだと返されたドキュメントの最終更新時刻や、そのドキュメントが
一体何であるかの情報が全くないため、不便だということで、HTTP/1.0からは、
返答にもヘッダがつくようになりました。

ではもう一度見てみましょう。もう一度web296サーバー(web296.com)の80番ポ
ートに接続して、今度は

GET / HTTP/1.1
Host: web296.com

でしたね。最後の改行は2回入れてください。すると……。

-----------------
HTTP/1.1 200 OK
Date: Fri, 03 Aug 2001 06:30:11 GMT
Server: Apache/1.3.20 (Unix)
Content-Type: text/html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0022)http://www.web296.com/ -->
<HTML lang=ja><HEAD>
     :
     :(中略)
     :
</td></tr></table>
</BODY></HTML>
-----------------

今度はドキュメント部分は全く同じですが、その前にメールのヘッダのような
ものが出ていますね。これが返答時のHTTPヘッダになります。

また、リクエストの1行目は「GET / HTTP/1.1」のようなコマンド行(これはリ
クエスト・ラインと呼ばれます)になっていましたが、返答の場合は
「HTTP/1.1 200 OK」のように返答の種類を示すようになっています(これはス
テイタス・ラインと呼ばれます)。この場合の「200」は「成功」を表しています。