内部システムのすべてのページで使用される大きな json データ オブジェクト (非圧縮で 300K、gzip で 40K 以上) があります。15分ごとに取得したい。この間に、ユーザーはおそらく私のシステムの数十ページにアクセスするでしょう。
Firebug の HTTP 応答ヘッダーは次のようになります。
Cache-Control max-age=899, public
Connection Keep-Alive
Content-Encoding gzip
Content-Length 44017
Content-Type text/html; charset=iso-8859-2
Date Tue, 04 Dec 2012 16:21:45 GMT
Expires Tue, 04 Dec 12 17:36:45 +0100
Keep-Alive timeout=15, max=99
Last-Modified Tue, 04 Dec 12 17:21:45 +0100
Pragma no-cache
Server Apache
Set-Cookie user_auth=xxx; expires=Wed, 12-Dec-2012 16:21:45 GMT; path=/; domain=example.com
Vary Accept-Encoding
X-Genaration-Time 0.13282179832458 sec.
X-Genarator vCRM 3.1 (c) Veracomp S.A.
X-Powered-By PHP/5.3.3-7+squeeze14
キャッシュ ヘッダーは今後 15 分に設定されますが、Chrome も Firefox もそれをキャッシュしません。Firebug は、キャッシュについて次のように述べています。
Data Size 44017
Device disk
Expires Thu Jan 01 1970 01:00:00 GMT+0100
Fetch Count 5
Last Fetched Tue Dec 04 2012 17:21:45 GMT+0100
Last Modified Tue Dec 04 2012 17:21:45 GMT+0100
Expires ヘッダーが無視されているようですが、なぜですか?
これは問題ではありませんが、コンテンツ タイプは text/html であるため、サーバーはそれを gzip で圧縮できますが、実際にはコンテンツは JSON であると書いたほうがよいでしょう。
これをリクエストするために Prototype.js を使用しています。リクエストヘッダーを設定しました:
Cache-control: max-age=900
Prototype.js は、キャッシュ無効化パラメータを URL に追加しません。Zend_Framework で PHP を使用して、応答を提供するように設定しています。
私は何を間違っていますか?