Вопрос

Перенаправление 302 возвращается после публикации информации.Это перенаправление предназначено для перезагрузки текущей страницы.

Все это работает нормально, но IE добавляет No-Cache в заголовок:

Cache-Control: no-cache

Мы используем Squid для кэширования нашего контента, и помещение этого в заголовок обходит squid.
Поскольку это перенаправление используется довольно часто (обойти это невозможно), это существенно увеличивает нагрузку на нашу систему.

У Firefox нет этой проблемы, он просто запрашивает перенаправленную страницу без изменения заголовка, что является именно тем, что мы хотим.

Есть ли что-нибудь, что мы можем сделать, чтобы помешать IE добавлять no-cache?

Это было полезно?

Решение

Очаровательно.Это действительно проблема IE без прямого обходного пути.Проблема в том, что IE безоговорочно добавит элемент управления кэшем:заголовок запроса без кэша (или Прагма:заголовок запроса без кэша, если у вас есть прокси) на HTTP POST-запрос.

Это, несомненно, было введено в IE более десяти лет назад для размещения глючных прокси-серверов, которые неправильно обрабатывали HTTP POST-запросы и неправильно возвращали кэшированные ответы.

Особенность IE заключается в том, что при перенаправлении заголовки без кэша повторно добавляются к перенаправленному запросу.Следовательно, в вашем случае ваш перенаправленный запрос также отправляет заголовок запроса "без кэша", перенесенный из запроса POST.

К сожалению, прямого обходного пути для этого нет.Вы могли бы перенаправить пользователей IE на промежуточную страницу, которая использует JavaScript для перенаправления их обратно на исходную страницу.(Однако не используйте META REFRESH, потому что это ВСЕГДА отправляет запросы без кэша).

Другие советы

Для меня звучит как ошибка в IE. Это обсуждение звучит похоже.Возможно, вы могли бы попробовать отправить ответ 301 или 307, чтобы посмотреть, реагирует ли он по-другому.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top