掲示板の準備をしているのですが、準備が多くなってしまって、 まだ掲示板へたどりつかない様子であります(^^;;;
やりたいことは掲示板に入力されるホームページアドレスのチェックなのですが、 まずは、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 メソッドとして GET と HEAD が選択できますので、URL を入れて動かしてみてください。
httpreqp.htm の中身
httpreqp.cgi の中身