ブラウザキャッシュを有効にしたいのですが、以下のヘッダーを設定しても、なぜかサーバーにリクエストにきます。なぜでしょうか?


セッションは有効です。PHP使っています。リクエスト対象は、PHP経由で呼び出す画像です。
GET http://www.hoge.org/image_2222/

---
Date Tue, 24 Mar 2009 14:45:53 GMT
Server Apache
X-Powered-By PHP/5.0.8
P3P CP='UNI CUR OUR'
Expires Sat, 28 Mar 2009 18:45:53 GMT
Cache-Control max-age=360000
Pragma cache
Keep-Alive timeout=10, max=100
Connection Keep-Alive
Transfer-Encoding chunked
Content-Type image/gif

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2009/03/31 23:50:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:y_fudi No.1

回答回数14ベストアンサー獲得回数1

ポイント35pt

キャッシュするかどうかは、ブラウザごとに条件が異なるようです。ターゲットとなるブラウザを特定しつつ、下記のBlogを参考にされて、Last-Modifiedヘッダも送り返すようにしてみてはいかがでしょうか?

Kazuho@Cybozu Labs: キャッシュの上手な使い方

id:cbic

やってみます。

<結果報告>

やってみましたが、Last-Modifiedをつけてもキャッシュしませんでした・・・

2009/03/26 22:13:04
id:hijk05 No.2

回答回数1307ベストアンサー獲得回数23

ポイント35pt

キャッシュか有効かどうか調べるために、ファイルのタイプスタンプの情報を取得する必要があるので、

サーバーにリクエストする必要があります。

id:cbic

やってみます。

<結果報告>

やってみましたが、Last-Modifiedをつけてもキャッシュしませんでした・・・

2009/03/26 22:13:09
  • id:y_fudi
    結果報告、ありがとうございます。
    Last-Modifiedヘッダではダメだったんですね。お役に立てずに申し訳ありません…。

    そういえば、「Cache-Control」ヘッダは返されているようですが、「public」はされていないのでしょうか。私の関わっているシステムでは、「Cache-Control: public, max-age=1200000」みたいな形で「Cache-Control」ヘッダーを返してます。その結果、Firefox3で確認したところ、ブラウザでキャッシュされているようです。

    お役に立てるかどうかわかりませんが、ご参考まで。
  • id:cbic
    ありがとうございます。publicをつけてもだめでした・・・。なぞです。。
  • id:y_fudi
    うーむ、ダメでしたか。

    蛇足かもしれませんが、ブラウザがキャッシュするときは、メモリにキャッシュする場合とディスクにキャッシュする場合があるようです。もし、キャッシュはされていたとしても、メモリキャッシュにキャッシュされた場合、ディスク上のキャッシュフォルダを見てもファイルが存在しないということもあり得るのかも、と思いました。

    Firefoxに下記のようなツールを入れて、メモリキャッシュの中身も確認されてみるどうでしょうか。

    http://www.forest.impress.co.jp/article/2007/02/22/cacheviewer.html

    既にメモリキャッシュの中も確認されているようでしたら、申し訳ありません。。。。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません