Я отправляю правильно отформатированный 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", которые сервер отправляет вместе с ответами страницы и, таким образом, ВСЕГДА запрашивает данные с сервера?