任意のページを取得するために、ASHさんのスクリプトを使ってい
ます。
ところが、どうにも取得できないページがあります。
ブラウザでは見れるのに、このスクリプトでは取得できません。
ダンプをとってみると、404not foundが返却されます。
想像ですが、この場合のアドレスは、「別名」なのでしょうか?
ブラウザでは見られるのだから、なにか方法があると思いますが、
その方法がわかりません。
ASHさんのスクリプトは、
http://ash.jp/perl/socket_http.htm
にあります。
たとえば、
http://www.icn.ne.jp/~akatuki/furu0.htm
http://www.icn.ne.jp/~furukawa/
は、このスクリプトでは読み取れません。
ここのプロバイダのサーバ上にあるHPは、全てそのようです。
また他のSPでも、このような所があります(少ないようですけど)。
こうなる理由と、対処方法(読み取る方法)をお願いします。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
> #$http = '1.1';
のシャープを外してないとか。
私が的外れかも。
ありがとうございました。
>私が的外れかも。
どころか、
これをはずしたら、ドンピシャ!
うまくいきました。
コード的に見ると、このサーバーはHTTP1.1しか
サポートしていないということですね。
1.1の判断ではじかれてelse{}を実行したけれど、
「なにそれ?」と、知らん顔されたということでしょう。
とすると、この判断の前にサーバーに、「あんたのVerは?」
って聴いて分岐させるべきだとおもうのですが、
その方法はあるのでしょうか?
No.3
- 回答日時:
>この判断の前にサーバーに、「あんたのVerは?」
>って聴いて分岐させるべきだとおもうのですが、
>その方法はあるのでしょうか?
Webサーバに適当なHTTP要求を送信すれば,それに対するWebサーバからのHTTP応答の中にHTTPバージョンを示す値が含まれていますので,それを検査することになります。CGIプログラミングの入門書に解説が載っているでしょう。
ただ,今回のご質問の場合は。
HTTP/1.0のWebサーバ,HTTP/1.1のWebサーバ,ともにそのWebページを取得できればいいという最も基本的なニーズですから,単にHTTP/1.1要求を送信すればよいはずです。
RFC2145「HTTPのバージョン番号の使い方と解釈について」を参照。
http://www.tech-web.net/note/RFC2145.html#version
ありがとうございます。
>Webサーバに適当なHTTP要求を送信すれば,それに対するWebサーバか
>らのHTTP応答の中にHTTPバージョンを示す値が含まれていますので
ダンプを取ってみましたので、404not foundを返したときでも、
ヘッダにそれが含まれているのは知っています。それを抜き出すのは
簡単なのですが、もっとスマートに取得できないかと、思った訳です。
>CGIプログラミングの入門書に解説が載っているでしょう。
私自身、Perlの入門書でHTTPプロトコルについて、Perlとの関連で
書かれたものは知りません。
CGIプログラミングは、特定の言語を指すものではないので、
他の言語の入門書には書いて有るのかも知れませんね。
プロトコルについてはあまりヨク知らないので、Perlに関連した入門書
で、HTTPに関して書かれた書籍があれば、ご紹介願います。
>HTTP/1.0のWebサーバ,HTTP/1.1のWebサーバ,ともにそのWebページを>取得できればいいという最も基本的なニーズですから,単にHTTP/1.1
>要求を送信すればよいはずです。
おっしゃるとうりです。
オリジナルでは、その部分がコメントアウトされていて、上手く
いかなかったことは、 osamuy(No.1)さんのご指摘の通りでした。
>RFC2145「HTTPのバージョン番号の使い方と解釈について」を参照。
>http://www.tech-web.net/note/RFC2145.html#version
ありがとうございました。
勉強になりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Rubyを利用してExcelへデータを...
-
電脳DWSのアクセス部分について
-
awkの処理速度を改善したい
-
Cからシェルを起動し返り値をハ...
-
CGI_Lite.pmは,Perl6.5.1 で使...
-
下階層のファイルを含めての最...
-
cygwinでcshが認識されず困って...
-
TeraTermマクロでの出力キャッチ
-
例外処理のフローチャートの記...
-
VBでグローバル変数を宣言するには
-
LCD ディスプレイを Raspberry ...
-
VBSがコンパイルエラーになりま...
-
Excel VBAでリンク切れをチェッ...
-
Excel VBAで、ユーザーフォーム...
-
Perlソースコードをコンパイル...
-
Excel VBA 定義されたプロージ...
-
acwzlibとは?
-
エクセルVBAでシートモジュール...
-
perlを使って音(sound.wav)を...
-
モジュールの最大数はいくつな...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Cからシェルを起動し返り値をハ...
-
cygwinでcshが認識されず困って...
-
powershellで関数名を変更する...
-
CシェルプログラミングをCygwinで?
-
UWSCのスクリプトにラグが発生...
-
Perlのライセンス
-
pythonプログラム
-
Perlスクリプトで文字化けして...
-
VBScriptでCurrentDirectoryを...
-
VBSを利用して、IEのタブを自動...
-
[ASP]条件によってインクルード...
-
vbs: オブジェクトがコレクショ...
-
ADサーバにおけるログインID,PC...
-
crontab での実行結果が違う
-
TeraTermマクロでの出力キャッチ
-
awkの処理速度を改善したい
-
Rubyを利用してExcelへデータを...
-
ドル記号+アルファベット
-
pythonスクリプトの停止方法に...
-
setuid と mkdir
おすすめ情報