[PHP-users 29342] Re: PHPによる画像転送キャッシュ

Kazuhiro Kotsutsumi kotsutsumi @ xenophy.com
2006年 6月 6日 (火) 15:24:41 JST


自己レスです。。。


いつもお世話になっております。
Xenophy 小堤です。

下記の件解決しました・・・。
(2日も悩んだのに・・・解決するときはあっさりなのね・・orz)

header( 'Expires: Mon, 28 Jul 2014 23:30:00 GMT' );
header( 'Cache-Control: max-age=315360000' );

を送信することで、このファイルは10年は更新されないと思ってくれるらし
く・・。
とりあえず、サーバに対してIEでもリクエストが繰り返されないことを確認しま
した。
抜本的解決になっているかどうかの検証はまだ必要ですが、取り急ぎ解決しまし
たのでご報告いたします。

お忙しい中大変申し訳ございませんが
よろしくお願いいたします。

>いつも参考にさせていただいております。
>Xenophy 小堤です。
>
>PHPで画像を表示するということを行いたいのですが
>下記のような状態で転送を行う処理をしたいと思っております。
>
>
>1.hoge.gif にアクセスがきた場合、mod_rewriteにて
>  images.php?file=hoge.gifが呼び出される。
>
>2.表示用HTMLの中で<img src="hoge.gif" />
>  の形でイメージ取得を設定する
>
>3.images.phpではheaderでimage/gifを送信し、画像ファイルを
>  読み込みprintして終了する。
>
>
>これで、実際のhoge.gif自体がドキュメントルートになくても、転送表示が行え
>ます。しかし、onMouseOverなどの処理をすると顕著に症状を確認できるのです
>がIEの場合のみ、毎回サーバに画像を取得しに行ってしまうのです。
>
>FireFox1.0.7/1.5やOpera8などでは、Apacheのログを見ても一度読み込んだ画像
>はキャッシュされているようで、サーバへ再度アクセスされることがありません。
>
>headerで200 OKが返却されたときにLast-Modifiedを送信するようにして、再度
>アクセスがあった場合にIf-Modified-Sinceが存在し、ファイルが更新されてい
>なければ304を返す(Not Modified)ようにも実装してみましたが、IEでは何度
>も304としてアクセスし続けてしまいます。
>
>これはIEの仕様なのでしょうか?それともFireFoxなどがただキャッシュしてく
>れているだけで、本来キャッシュされないものなのでしょうか?
>
>HTTPヘッダーについて、深い知識がまだないため追求しきれていませんが
>こういったPHPでの画像転送におけるキャッシュについて、知識のある方がいら
>っしゃいましたら上記の件についてご教授願います。
>
>
>お忙しい中大変申し訳ございませんが
>よろしくお願いいたします。
>
>_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
>Company      : 株式会社ゼノフィ - Xenophy CO., LTD.
>Name         : 代表取締役社長
>               小堤 一弘
>Tel/Fax      : 03-3363-7607/03-3363-7607
>Mail Address : kotsutsumi @ xenophy.com
>H.P  Address : http://www.xenophy.com/
>BLOG Address : http://blog.xenophy.com/
>_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
>
>_______________________________________________
>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







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