[2004-02-09-1] の HTTP 版です。

Web ブラウザは HTTP リクエストを送信し、返ってきたステータスコード
や、生の HTML 等を解析するのが仕事です。

HTTP リクエストは簡単なので、人間が telnet で接続しサーバとお話しす
ることもできます。

存在するページを指定すると、200 ステータスコードとともに、生の HTML コードが出力されます。

% telnet www.example.com 80
Trying 208.77.188.166...
Connected to example.com.
Escape character is '^]'.
GET /index.html HTTP/1.0       #<= 入力後、Enter×2回

HTTP/1.1 200 OK                #<= ステータスコード 200 が返ってきた。
(以下省略)

存在しないページを指定すると、404 ステータスコードが出力されます。

% telnet www.example.com 80
Trying 208.77.188.166...
Connected to www.example.com.
Escape character is '^]'.
GET /hoge.html HTTP/1.0        #<= 存在しないページを入力後、Enter×2回

HTTP/1.1 404 Not Found         #<= ステータスコード 404 が返ってきた。
(以下省略)

オプション(HTTP ヘッダ)を指定すると、環境変数として CGI に渡ります。

この例だと分かりませんが、簡単な CGI のプログラムで確認出来ます。

% telnet www.example.com 80
Trying 208.77.188.166...
Connected to example.com.
Escape character is '^]'.
GET /index.html HTTP/1.0         #<= 入力後、Enter×1回
User-Agent: Telnet [ja] (Linux)  #<= 適当な User-Agent を入力後、Enter×2回

HTTP/1.1 200 OK                  #<= ステータスコード 200 が返ってきた。
(以下省略)

まとめ

200: OK -> 正常にアクセスできた。
404: Not Found -> ページが見つからなかった。

参考情報: Http
参考情報: HTTPステータスコード
参考情報: telnetでブラウズ(HTTP)

こうして確認してみると、HTTP のデータ構造は電子メール(RFC2822)とそっ
くりだということが分かります。両方ともヘッダは複数の

フィールド名: 内容
で構成され、最後は空行で終わります。

あと、[2003-06-08-1] にも書きましたが、例で使っている example.com
は、予約ドメインとして RFC2606 に定義されています。実際にアクセスす
ることも出来ます。