Различия между различными кодами перенаправления HTTP 3XX мне не ясны. Да, я прочитал спецификацию, но здесь есть некоторое расхождение между стандартной и реальной практикой.
Код 301
перенаправления кажется достаточно ясным: это означает, что ресурс был постоянно перемещен в другой URI, и будущие запросы должны использовать этот URI.
И 307
код перенаправления также кажется ясным: это означает, что перенаправление является временным, и будущие запросы все равно должны использовать исходный URI.
Но я не могу сказать, в чем разница между 302
и 303
почему они действительно отличаются 301
. Кажется, что 302
изначально он был предназначен для временного перенаправления (вроде 307
), но на практике большинство браузеров рассматривали его как a 303
. Но в чем разница между а 303
и а 301
? Является ли 301
должно означать редирект является более постоянным?
источник
Разница между 303 и 307 заключается в следующем:
303 : см. Другие. Запрос получен правильно, но результаты должны быть получены с помощью GET на URL перенаправления.
307 : временное перенаправление. Весь запрос должен быть перенаправлен на новый URL. Любые данные должны быть опубликованы повторно.
Обратите внимание, что 302 должен был иметь поведение 307, но большинство браузеров реализовали его как поведение 303 (оба из которых тогда не существовали). Поэтому эти два новых кода были введены для замены 302.
Разница между 301 и 303:
301 : документ перемещен. Будущие запросы должны использовать новый URL. Этот URL устарел.
Примечание: будьте осторожны с этим кодом. Браузеры и прокси-серверы обычно применяют к нему действительно агрессивное кеширование, поэтому, если вы ответите с 301, это может занять много времени, чтобы кто-то снова посетил этот URL.
303 : запрос получен правильно. Любые запросы PUT обрабатываются. Результирующий документ может быть получен из URL переадресации. Будущий запрос все равно должен идти на исходный URL.
источник