Zend_Controller_Response
オブジェクトを使用してブラウザに画像を出力しています。イメージにキャッシュを適用することは私の意図ですが、何かがCache-Controlヘッダーを上書きする原因になります。次のようにPHPセッションによって変更されたキャッシュ制御ヘッダー?
私のコードは次のとおりです。
$this->getResponse()
->setHeader('Last-Modified', $modifiedTime, true)
->setHeader('ETag', md5($modifiedTime), true)
->setHeader('Expires', $expires, true)
->setHeader('Pragma', '', true)
->setHeader('Cache-Control', 'max-age=3600')
->setHeader('Content-Type', $mimeType, true)
->setHeader('Content-Length', $size, true)
->setBody($data);
出力は(Firebugの中で見て)です:
レスポンスヘッダ
の
- 日
- 水曜日、3月25日2009 10:34:40 GMT
- サーバー
- のApache/2.2.3(Ubuntuの)のmod_ssl/2.2.3 OpenSSLの/ 0.9.8c
- が
- 木期限、2009年3月26日10時34分41秒GMT
- のCache-Control
- 無店舗、キャッシュなし、しなければならない - 再検証、ポストチェック= 0、事前にチェック= 0、最大エージング= 3600
- のLast-Modified
- たEtag
- d3ef646c640b689b0101f3e03e08a524
- のContent-Length
- X-UA互換
- IE = EmulateIE7
- X-ロボットタグ
- にnoindex
- キープアライブ
- タイムアウト= 15、最大= 100
- 接続
- キープAlive
- コンテンツタイプ
- image/jpeg
リクエストヘッダ
- ホスト
- khall。####。###。######。com
- のUser-Agent
- のMozilla/5.0 (X11; U; Linux i686; en-US; RV:1.9.0.7)のGecko/2009030422のUbuntu/8.04(ハーディ)のFirefox/3.0 0.7
- text/htmlで、アプリケーション/ XHTML + xmlの、アプリケーション/ XMLを受け入れる; Q = 0.9、*/*; qは= 0.8
- 受け入れ言語
- EN-JP、EN; Q = 0.5
- 受け入れエンコード
- GZIP、収縮
- 受け入れ、文字セット
- ISO-8859-1、UTF-8、Q = 0.7、*; q = 0である。7
- キープアライブ
- 接続
- キープアライブ
- リファラー
- のhttp://khall.####.###.######.com/
あなたが見ることができるように、キャッシュ制御を含むように変更され- PHPSESSID = abf5056e1289d3010448107632a1c1bd
無店舗、キャッシュなし、-再検証する必要があり、ポストチェック= 0、事前にチェック= 0
私の疑惑は、要求で送信されているセッションクッキーに向かっています。誰も私が必要とするヘッダーを送信する方法を知っていますが、まだ要求にセッションを維持していますか?私のアプリケーションはブートストラップを通して実行され、セッションはZend_Sessionを使って処理されます。
ご協力いただければ幸いです。 Zend_Controllerのドキュメントから
GAH!私は自分の顔を叩かなければならない。私はそのパラメータを渡していると思った!あなたはかなり正しいです、それは答えです。 –
Hehe、私はいつもそれをやる!証明? http://stackoverflow.com/questions/657600/how-do-i-correctly-create-a-zend-feedを参照してください – karim79