[PHP-users 29341] PHPによる画像転送キャッシュ
Kazuhiro Kotsutsumi
kotsutsumi @ xenophy.com
2006年 6月 6日 (火) 15:05:49 JST
いつも参考にさせていただいております。
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 メーリングリストの案内