Почему Google Chrome НЕ использует кешированные страницы, когда я определяю HTTP Заголовок «Expires»

Я отправляю правильно отформатированный HTTP-ответ с заголовками «Expired» (например, «Wed, 04 May 2011 09:29:09 GMT») со страницей, обслуживаемой через https: // [хост]: {port} / (где [host] является localhost) из приложения J2EE, используя response.setDateHeader ("Expires", {миллисекунды через несколько секунд в будущем}) .

На моих страницах есть ссылка на ту же страницу. Когда я нажимаю эту ссылку в Firefox (4) или IE (8), страница перезагружается из кеша до тех пор, пока не истечет время Expired. По истечении времени Expired нажатие на ту же ссылку приводит к загрузке страницы с сервера со свежими данными. Если я нажму F5 в любом из упомянутых браузеров, страница будет перезагружена новыми данными с сервера (Firebug показывает мне, что Cache-Control: max-age = 0 отправляется с запросом).

В Google Chrome и F5, и нажатие на ссылку имеют одинаковый эффект. Страница ВСЕГДА перезагружается с сервера с новыми данными.

Мне не удалось найти хорошо задокументированного объяснения этого эффекта.

Кто-нибудь знает, почему в моем случае Google Chrome не соблюдает заголовки "Expired", которые сервер отправляет вместе с ответами страницы и, таким образом, ВСЕГДА запрашивает данные с сервера?

9
задан BartoszKP 23 January 2014 в 09:49
поделиться