レンタルサーバに制作した php のプログラムをアップしたら表示が遅い。ブラウザから見たときだけそうなり、wget すると一瞬で取得できるのです。
Firebugs で HTTPヘッダを見てみたら、Transfer-Encoding: chunked になってました。ということはそのレスポンスのストリーム終端が検出できずに Keep-Alive がタイムアウトするまで待ってしまってるのが原因のようです。それで php スクリプトの最後に flush(); とか書いてみたものの特に変化は見られずでした。
そもそもチャンクなのもどうのかなぁと思っていたら、
DoCoMo のiモードコンテンツ作成時の仕様 HTTPより
http://www.nttdocomo.co.jp/service/imode/make/content/html/notice/basis/#p04
CGI作成時に「Content-Type」、「Content-Length」は必須項目となります。
とあるので、ケータイからアクセス対応も考えるとチャンクではなく Content-Length で対応しないと駄目ということです。
http://jp2.php.net/manual/ja/function.ob-get-length.php#13715 を見たところ、ズバリの答えがありました。
ob_start(); ?> 〜〜〜〜〜 $size=ob\_get\_length(); header("Content-Length: $size"); ob\_end\_flush(); ?>世の中、php でケータイコンテンツ作られている事例は多々あると思うのですが、みなさんこのように実装されているのでしょうか。