STEP 10 よそのサーバーと会話してみよう!


よそのサーバーと会話してみよう!

掲示板の準備をしているのですが、準備が多くなってしまって、 まだ掲示板へたどりつかない様子であります(^^;;;
やりたいことは掲示板に入力されるホームページアドレスのチェックなのですが、 まずは、socket I/O や、http のリクエストとレスポンスなどの習作です。 例によって、とにかく動いています。(^^;;;

メソッドとして GET と HEAD が選択できますので、URL を入れて動かしてみてください。

動かしてみる。

httpreq.htm の中身

httpreq.cgi の中身


Hypertext Transfer Protocol -- HTTP/1.0(英語)
日本語訳

URL をチェックするには、HEAD Method のレスポンスに、ステータスコード 200 が返ってくればいい事になります。


アクセスできないアドレスがあるので調べていくと、HTTP1.1 にしたがって Host を指定するとうまくいきました。
Hypertext Transfer Protocol -- HTTP/1.1 rev06(英語)

RFC2068 が HTTP/1.1 rev00 以前の rev になるようなのですが日本語訳はないみたいです。
うーむ、なんか、CGI とあそんでいると、英語を読む機会がふえます(^^;;;


レスポンス中のステータスコードの一覧
Status-Code
200 OK
201 Created
202 Accepted
204 No Content
301 Moved Permanently
302 Moved Temporarily
304 Not Modified
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
500 Internal Server Error
501 Not Implemented
502 Bad Gateway
503 Service Unavailable
extension-code

301 Moved Permanently, 302 Moved Temporarily は、 ディレクトリ名なのに最後に "/" をつけない時にも帰ってきます。

たとえば、次のような URL は誤りです。
http://www2d.biglobe.ne.jp/~gama (誤)

正しい URL は、次のようになります。
http://www2d.biglobe.ne.jp/~gama/ (正)

一般的なブラウザは、このような場合には、自動的にリトライしているので、 ほとんど誤りに気がつかないでアクセスできます。 このような最後の "/" がないものを URL としている例も多いようですが、間違っています。

Proxy 経由でのアクセス

Proxy 経由でのアクセスの例です。
Proxy メソッドとして GET と HEAD が選択できますので、URL を入れて動かしてみてください。

動かしてみる。

httpreqp.htm の中身

httpreqp.cgi の中身


戻る |ホームへ |進む