У меня есть приложение для веб-приложений с пользовательским веб-сервером, и у меня возникают проблемы с браузерами веб-кит, которые не кэшируют изображения, таблицы стилей и JavaScript.Webkit не кэшируется, когда предоставляются максимальные и последние измененные заголовки
Я отследил его до некоторых отношений между Cache-Control: max-age и Last-Modified. Если оба указаны, то webkit, кажется, игнорирует заголовок максимального возраста и проверяет, был ли файл изменен КАЖДЫЙ раз, когда используется ресурс. У сайта есть iframe на первой странице, и это приводит к тому, что таблицы стилей и т. Д. Запрашиваются дважды в течение секунды!
Если вы удалите Last-Modified, файлы не будут повторно запрошены до следующего дня; однако запросы на следующий день больше не будут, если изменены, поскольку запросы, требующие от сервера повторной отправки всего, а не только заголовка 304.
В IE9, Firefox 10.0 и Opera 11.61 кеши браузеров корректно и не запрашиваются повторно, а только HTML, который имеет атрибут заголовка кэша-управления: отсутствие кеша.
В 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, так что это именно то, что получает браузер.
Примечание: Я задал предыдущий вопрос, прежде чем обнаружил, что это взаимодействие между полями заголовка. Я удалил предыдущий вопрос, поскольку он уже не был точным.
Благодаря
Mog
Вы когда-нибудь диагностировали причину или находили решение этой проблемы? Мы видим повторяющиеся условные запросы GET на каждом изображении в Mac OS X 10.8.2 с браузерами на основе webkit (Chrome/Safari), но Firefox кэширует правильно. –
Фактически мы удаляем атрибут last-modified для Chrome и Safari, чтобы он, по крайней мере, делал некоторые кеширования. Никогда не находил лучшего решения извините. – Mog0