Я выводил изображение в браузер с помощью объекта Zend_Controller_Response
. Я намерен применить кэширование к изображению, однако что-то вызывает перезапись заголовка Cache-Control.
Мой код выглядит следующим образом:
$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):
Заголовки ответов
<Дл > Дата Wed, 25 Mar 2009 10:34:40 GMT Сервер Apache/2.2.3 (Ubuntu) mod_ssl/2.2.3 OpenSSL/0.9.8c Истекает Thu, 26 Mar 2009 10:34:41 GMT Cache-Control no-store, no-cache, must-revalidate, post-check = 0, pre-check = 0, max-age = 3600 <Дт > Last-Modifiedдт > <дд > 1234872514дд > <Дт > Etagдт > <дд > d3ef646c640b689b0101f3e03e08a524дд > <Дт > Content-Lengthдт > <дд > тысяче четыреста пятьдесят дведд > <Дт > X-UA-Compatibleдт > <дд > IE = EmulateIE7дд > <Дт > X-Robots-Tagдт > <дд > NOINDEXдд > Keep-Alive timeout = 15, max = 100 <Дт > Подключениедт > <дд > Keep-Aliveдд > <Дт > Content-Typeдт > <дд > изображение/JPEGдд > Дл >
Заголовки запросов
<Дл > <Дт > Хостдт > <дд > khall. ####. ###. ######. Комдд > User-Agent Mozilla/5.0 (X11; U; Linux i686; en-US; rv: 1.9.0.7) Gecko/2009030422 Ubuntu/8.04 (hardy) Firefox/3.0 0,7дд > <Дт > Принятьдт > <дд > текст /HTML, приложение/XHTML + XML, приложение /XML; д = 0,9, */*; д = 0,8дд > <Дт > Accept-Languageдт > <дд > ан-ГБ, ан; д = 0,5дд > <Дт > Accept-Encodingдт > <дд > GZIP, Deflateдд > <Дт > Accept-Charsetдт > <дд > ISO-8859-1, UTF-8; д = 0,7, *; д = 0,7дд > <Дт > Keep-Aliveдт > <дд > 300дд > <Дт > Подключениедт > <дд > поддержания активностидд > <Дт > Refererдт > <дд > Http://khall.####.###.######.com/дд > <Дт > Печеньедт > <дд > PHPSESSID = abf5056e1289d3010448107632a1c1bdдд > Дл >
Как вы можете видеть, управление кэшем изменено, чтобы включить:
no-store, no-cache, must-revalidate, post-check = 0, pre-check = 0
Мое подозрение касается отправки cookie сеанса в запросе. Кто-нибудь знает способ отправить требуемый заголовок, но все же сохранить сеанс в запросе? Мое приложение запускается через бутстрап, а сеансы обрабатываются с помощью Zend_Session.
Любая помощь будет оценена.