Я пытаюсь правильно настроить кеширование и назначил заголовки Expires до 365 дней в будущем, которые работают правильно, но не корректно отображаются в IE9. Кто-нибудь знает, почему?
Когда вы посещаете какой-либо сайт в IE9 (например, www.google.com), затем нажмите "Enter" в адресной строке, чтобы просмотреть его с полным кэшированием, он показывает много дополнительных 304, которые Fiddler не показывает.
Взглянув на вкладку сетевого инспектора (на F12), IE9 показывает, что он получил 304 Not Modified ответы для файлов CSS и JS и 3 изображения (возможно, изображения с измененными датами в течение примерно в прошлом месяце - остальные 30 изображений, которые не показаны, старше).
Однако, по словам Фиддлера и просмотра журналов IIS на сервере на веб-сайте, который я разрабатываю, он фактически не делал эти запросы. Временная шкала сети IE9 показывает эти серые 302s как отсутствие времени ожидания и время ответа "< 1 мс", тогда как если я нахожу F5, они также являются серыми 302, но отображаются как несколько миллисекунд, ожидающих и загружающих время (и они попадают в сеть).
Итак, почему сетевой инспектор IE9 считает, что он выдал условный запрос? Он действительно выдал запрос, который был удовлетворен в сетевом стеке где-то, прежде чем он попал к Fiddler?
Chrome показывает все запросы, включая все изображения, как серый 200 (из кеша), кроме самой страницы, которая является черным 200 (что верно в соответствии с журналами Fiddler и IIS).
Firebug показывает серый 200 OK для CSS и JS и, как ни странно, только одно изображение (также верно, если предположить, что серый 200 означает из кеша, но зачем показывать только эти ресурсы, а не все остальные изображения?)
Я читал сообщения Eric Lawrence о кэшировании IE9 и сетевом стеке, но он не упоминает об этом нечетном поведении.