У меня написано веб-приложение с настраиваемым веб-сервером, и у меня возникают проблемы с браузерами webkit, которые не кэшируют изображения, таблицы стилей и javascript.
Я проследил это до некоторой связи между Cache-Контроль: максимальный возраст и последняя модификация.Если оба указаны, то webkit, похоже, игнорирует заголовок max-age и проверяет, был ли файл изменен КАЖДЫЙ раз, когда используется ресурс.У сайта есть iframe на первой странице, и это приводит к тому, что таблицы стилей и т. Д. Запрашиваются дважды в течение секунды!
Если вы удалите Last-Modified, то файлы не будут повторно запрашиваться до следующего дня.;однако запросы на следующий день больше не будут запросами if-Modified-Since, требующими от сервера повторной отправки всего, а не только заголовка 304.
В IE9, Firefox 10.0 и Opera 11.61 браузеры кешируются правильно и не работаютНе запрашивайте изображения, только HTML, который имеет атрибут заголовка Cache-Control: no-cache.
В Chrome 16.0.912.77 m и Safari 5.1.2 (7534.52.7) условный запроссделано для каждого изображения на каждой странице, каждый раз.Сервер отвечает заголовком 304, снова содержащим атрибут max-age, но оба продолжают запрашивать.
Пример HTTP-заголовка, который я отправляю с ответом:
HTTP/1.1 200 OK
Date: Mon, 06 Feb 2012 15:12:12 GMT
Cache-Control: max-age=86400
Content-length: 708
Content-type: image/gif
Last-Modified: Fri, 6 Jan 2012 14:39:07 GMT
Server: Webspring
у кого-нибудь есть какие-либо предложения о том, как заставить эти браузеры уважать заголовки моего кэша?
Все браузеры работают на Win7 Pro x64, а приведенный выше заголовок HTTP является необработанным выводом Fiddler, так что это именно то, чтобраузер получает.
Примечание. Я задал предыдущий вопрос, прежде чем обнаружил, что это взаимодействие между полями заголовка.Я удалил предыдущий вопрос, поскольку он больше не был точным.
Спасибо
Мог