Этот вопрос задавался давно, в то время как RFC 2616 все еще зависал. Некоторые ответы на этот вопрос основаны на таком документе, который больше не актуален в настоящее время. Цитировать Марк Ноттингем , который на момент написания статьи являлся сопредседателем рабочих групп IETF HTTP и QUIC:
Не используйте RFC2616 . Удалите его со своих жестких дисков, закладок и запишите (или ответственно переработайте) все распечатанные копии.
Старый RFC 2616 был заменен следующими документами, которые вместе определяют протокол HTTP / 1.1:
Таким образом, я стремлюсь предоставить ответ на основе RFC 7231 , который является текущей ссылкой для кодов состояния HTTP / 1.1.
Код состояния 302
Ответ с 302
является распространенным способом выполнения перенаправления URL. Вместе с кодом состояния 302
ответ должен включать заголовок Location
с другим URI. Такой заголовок будет прочитан пользовательским агентом и затем выполнит перенаправление:
Веб-браузеры могут измениться с POST
на GET
в следующем запросе. Если это поведение нежелательно, вместо него можно использовать код состояния 307
(временное перенаправление).
Вот как код состояния 302
определяется в RFC 7231 :
6.4.3. 302 найдено
Код состояния 302
(Найдено) указывает, что целевой ресурс
временно находится под другим URI. С момента перенаправления
может быть изменен в случае необходимости, клиент должен продолжать использовать
действующий URI запроса для будущих запросов.
Сервер ДОЛЖЕН сгенерировать поле заголовка Location
в ответе
содержащий ссылку на URI для другого URI. Пользовательский агент МОЖЕТ
используйте значение поля Location
для автоматического перенаправления. Сервера
полезный груз ответа обычно содержит короткую гипертекстовую заметку с
гиперссылка на другой URI.
Примечание: По историческим причинам пользовательский агент МОЖЕТ изменить запрос
метод от POST
до GET
для последующего запроса. Если это
поведение нежелательно, код состояния 307
(временное перенаправление)
можно использовать вместо.
Согласно веб-документам MDN от Mozilla , типичный вариант использования 302
:
Веб-страница временно недоступна по причинам, которые не были непредвиденными. Таким образом, поисковые системы не обновляют свои ссылки.
Другие коды состояния для перенаправления
RFC 7231 определяет следующие коды состояния для перенаправления:
301
(постоянно перемещено)
302
(найдено)
307
(временное перенаправление)
RFC 7238 был создан для определения другого кода состояния для перенаправления:
308
(постоянное перенаправление)
См. Этот ответ для получения более подробной информации.