Как долго сохраняется перенаправление 302 в браузере?
Из-за неправильной конфигурации нашего веб-сервера основной домен отправил 302 редирект в новое местоположение. Мы исправили эту проблему. При очистке кеша браузера теперь все работает нормально.
Для "обычного" клиента, который не очищает свой кэш: как долго хранится перенаправление 302 в браузере?
Я ищу конкретное время кэширования (если есть) для каждого из основных браузеров (Chrome, Firefox, Safari, Opera, Edge, IE 12) с настройками по умолчанию.
Ответы
Ответ 1
Он не должен кэшироваться вообще, если не имеется заголовок Cache-Control
или Expires
, возвращаемый веб-сервером. Согласно RFC 2616, раздел 10.3.3 302 Найдено
Запрошенный ресурс временно находится под другим URI. Так как перенаправление может быть иногда изменено, клиент ДОЛЖЕН продолжать использовать Request-URI для будущих запросов. Этот ответ может быть только кэшируемым, если указано полем Cache-Control или Expires.
Ответ 2
Стандарт, на который ссылается Джон Лин, использует "СЛЕДУЮЩИЙ", который не так силен, как "ДОЛЖЕН" в RFC-жаргоне. Это не просто теоретическое разграничение; Cloudflare, например, выполняет переадресацию кешей:
Если не указаны заголовки кеша (без Cache-Control или Expires) и url является кешируемым (.jpg,.css,.js и т.д.), тогда CloudFlare кэширует оба 301 и 302 с. Мы кэшируем 301 в течение нескольких часов и 302 секунд для более короткий период времени (~ 20 минут).
Таким образом, вы должны либо убедиться, что сможете справиться с этим, либо использовать явные заголовки (например, Cache-Control: private, no-cache
), чтобы направлять браузеры и промежуточные продукты против его кеширования.
Ответ 3
Это зависит от настроек кэширования отдельных клиентских браузеров: IE имеет возможность "НИКОГДА" проверять наличие новых страниц, это имеет тот же эффект при перенаправлении.
И AFAIR IE "Автоматические" настройки (по умолчанию?) Не намного лучше.
Ответ 4
Fire Fox
Его не следует кэшировать, за ошибку 812167
Ответ 5
Используя инструмент Steve Sounder Redirect Caching Tests (спасибо @LeonidVasilev), кажется, что результаты могут не соответствовать ожидаемым. Без заголовков или файлов cookie с истекшим сроком действия результаты были следующими:
Chrome 71: не кэшируется ✔
Firefox 64: кэшированный ✕
Safari 12: кэшированный ✕
Таким образом, несмотря на то, что в RFC 2616, раздел 10.3.3 302 найдено, указано, что не все браузеры следуют этим рекомендациям или тому, что можно считать ожидаемым поведением :(