トップページはこちら

cgi1.watch.impress.co.jp

このスクリプトは、巨大なバイナリなどのデータを読み込まないように、先ずheadリクエストを送信し、そのレスポンスに応じて、あらためてgetリクエストを適宜送信するようにしている。
headリクエストの時点でPEARパッケージがエラーを返した場合は一律に、「サーバが見つからないかDNSエラー」の類と判断していたのだけど、インプレスWatchの広告類のカウンターなのであろうcgi1.watch.impress.co.jpは、headリクエストの場合、レスポンスコードが302 Foundであるにも関わらずLocationフィールドを返さないので、PEARパッケージはエラーを返していた(getリクエストの場合は、ちゃんとLocationフィールドを返す)。なので、ここはPEAR:isErrorを使わず、レスポンスが空でない限りとにかく次へ進むというように修正。また、あらためてgetリクエストを行う際にはheadリクエストの結果から得られたURLを使用していたのだけど、これもあらため、当初のURLでいちからやり直すように修正。


2005/11/07

トラックバック

このエントリーのトラックバックURL:
http://www.rcdtokyo.com/mt/mt-rcdtokyo5428-tb.cgi/20

コメント

コメントをどうぞ



保存しますか?