Кеширование браузера - Почему IE9 всегда показывает http 304, хотя на самом деле он не попадает в сеть?

Я пытаюсь правильно настроить кеширование и установил для заголовков Expires значение 365 дней в будущем, что работает правильно, но не отображается правильно в IE9. Кто-нибудь знает, почему?

Когда вы посещаете какой-либо веб-сайт в IE9 (например, www.google.com), затем нажимаете Enter в адресной строке, чтобы вернуться к нему с полным кешированием, он показывает много дополнительных 304, которые Fiddler не показывает.

Посмотрев на вкладку сетевого инспектора (на F12), IE9 показывает, что он получил 304 ответа «Не изменено» для файлов CSS и JS и 3 изображения (возможно, изображения с измененными датами примерно за последний месяц - остальные 30 изображений не показаны). старшая).

Однако, согласно Fiddler и просмотру журналов IIS на сервере на веб-сайте, который я разрабатываю, он фактически не отправлял эти запросы. На временной шкале сети IE9 эти серые 302-е отображаются как время без ожидания и время отклика «<1 мс» - тогда как, если я нажму F5, они также будут серыми 302-ю, но показаны как несколько миллисекунд времени ожидания и загрузки (и они попадают в сеть).

Так почему же сетевой инспектор IE9 думает, что выдал для них условный запрос? Действительно ли он отправил запрос, который был удовлетворен где-то в сетевом стеке, прежде чем он попал в Fiddler?

Chrome показывает все запросы, включая все изображения, серым цветом 200 (из кеша), кроме самой страницы, которая имеет черный цвет 200 (что правильно согласно журналам Fiddler и IIS).

Firebug показывает серый цвет 200 OK для CSS и JS и, как ни странно, только одно изображение (также правильно, если серый цвет 200 означает из кеша, но зачем показывать только эти ресурсы, а не все остальные изображения?)

Я читал Эрика В блоге Лоуренса говорится о кешировании IE9 и сетевом стеке, но он не упоминает об этом странном поведении.

21
задан mike nelson 20 January 2012 в 04:24
поделиться