[PHP-users 28497] Re: header や readfileを実行するとそのページが2〜3回実行される

satoshi@try-square.co.jp satoshi @ try-square.co.jp
2006年 2月 20日 (月) 17:14:20 JST


藤本です。

これは、複数回のリクエスト自体を回避することは難しいですね。
私なら諦めます。(リクエスト自体を1回にすることを)

対策としては、立て続けに来るであろう複数回のリクエストに対して、
(少なくともCOM呼び出し部分は)1回しか処理しないことで、
サーバ側の負担をかけない工夫になります。

プロクシーにキャッシュして欲しいところですが、それはそれで問題が
起こりそうな気もします。
PHP自前でキャッシュするのが、制御しやすい方法かと思います。

リクエスト時に受け取った全パラメータとともに、生成結果を一時的に
保存しておき、次回リクエスト時に使いまわすのが良いです。
必要なら、そのキャッシュをいつ削除するかなどの制御も行うことに
なります。
キャッシュに利用するかどうかはともかく、パラメータには、
リクエスト日時も含めておくのがいいかもしれないです。

以上


FELLOW 大山 <ohyama @ fellow-inc.co.jp>さん:
> 藤本様
> 
> ありがとうございます。
> 
> >HTTPステータスは、全て200でしょうか?
> ログを確認したところ全て200にはなっていました。
> ただ1つ判った事があります。
> 1回のアクセスで以下のようにログが3件出力されていました。
> 
> 1件目
> 2006-02-20 07:24:36 192.168.0.99 GET /php/sapi/tts.php text=電話:
> 09012345678&sex=man&speed=6&volume=6 80 - 192.168.0.90 
> Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+SV1;+.NET+CLR+1.1.4322) 
> 200 0 0
> 
> 
> 2件目
> 2006-02-20 07:24:36 192.168.0.99 GET /php/sapi/tts.php text=電話:
> 09012345678&sex=man&speed=6&volume=6 80 - 192.168.0.90 
> Windows-Media-Player/10.00.00.3802 200 0 0
> 
> 
> 3件目
> 2006-02-20 07:24:36 192.168.0.99 GET /php/sapi/tts.php text=電話:
> 09012345678&sex=man&speed=6&volume=6 80 - 192.168.0.90 
> Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+SV1;+.NET+CLR+1.1.4322) 
> 200 0 0
> 
> クライアントのアプリケーションが1,3件目がIE6.0に対し
> 2件目がWindows-Media-Playerになっていました。
> ダウンロードしたファイルはそのままメディアプレイヤーで再生されているのですが
> それからもアクセスされているようです。。。
> 
> 以上、取りあえず分かった事をご報告します。
> 宜しくお願い致します。
> 
> >藤本です。
> >
> >たしかに難解な現象ですねー。2〜3回ってところも不思議です。
> >
> >IISのログをチェックしましたか?
> >現象発生時には複数行のログが出ているはずですが、それらの
> >HTTPステータスは、全て200でしょうか?
> >これが、206 Partial Contentとかになってたりしないですか?
> >
> >実際、出力されるコンテンツがWAVストリームの場合、クライアント側で
> >勝手に切り分けて、Rangeリクエストを何度も送ってくる可能性もあります。
> >
> >もし原因がそうだとすると、
> >header("HTTP/1.0 200 OK");
> >あるいは
> >header("HTTP/1.0 201 Created");
> >を出力の先頭につけて、回避できるかもしれないですね。
> >
> >以上
> 
> 
> 
> 
> _______________________________________________
> PHP-users mailing list  PHP-users @ php.gr.jp
> http://ns1.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://www.php.gr.jp/php/novice.php3



----
藤本 悟司

株式会社トライスクエア
〒104-0045 東京都中央区築地3-5-13北村ビル2F
TEL: 03-5148-3345 / FAX: 03-5148-3346
Mobile: 070-6668-4644
E-Mail: satoshi @ try-square.co.jp
WEB: http://www.try-square.co.jp/

Key fingerprint = 95F2 6B3D 0B8C 374A 5E67  CA02 F28F 703A C1A9 8346


PHP-users メーリングリストの案内