HTTP ответа код состояния 302 Найдено является общим способом выполнения перенаправления URL . Спецификация HTTP / 1.0 (RFC 1945) изначально определяла этот код и дала ему фразу описания «Временно перемещено», а не «Найдено».
HTTP-ответ с этим кодом состояния дополнительно предоставит URL-адрес в поле заголовка Location . Это приглашение пользовательскому агенту (например, веб-браузеру) сделать второй, в остальном идентичный, запрос к новому URL-адресу, указанному в поле местоположения. Конечным результатом является перенаправление на новый URL.
Многие веб-браузеры реализовали этот код способом, который нарушил этот стандарт, изменив тип запроса нового запроса на GET , независимо от типа, использованного в исходном запросе (например, POST ). [1] По этой причине HTTP / 1.1 (RFC 2616) добавил новые коды состояния 303 и 307 для устранения неоднозначности между двумя поведениями, при этом 303 предписывает изменение типа запроса на GET, а 307 сохраняет тип запроса в том виде, в котором он был первоначально отправлен. Несмотря на большую ясность, обеспечиваемую этим разрешением, код 302 все еще используется в веб-фреймворках для сохранения совместимости с браузерами, которые не реализуют спецификацию HTTP / 1.1. [2]
Как следствие, RFC 7231 (обновление RFC 2616) изменяет определение, чтобы позволить пользовательским агентам переписывать POST в GET. [3]
Пример
Запрос клиента:
GET /index.html HTTP / 1.1 Хост : www.example.com
Ответ сервера:
HTTP / 1.1 302 Найдено Расположение : http://www.iana.org/domains/example/
Смотрите также
- Список кодов состояния HTTP
- HTTP 301 - постоянное перенаправление
Рекомендации
- ^ Лоуренс, Эрик. «Методы HTTP и коды состояния перенаправления» . Блог Эрика Лоу IEInternals . Проверено 20 августа 2011 .
- ^ «Объекты запросов и ответов | Документация Django | Django» . Docs.djangoproject.com . Проверено 23 июня 2014 .
- ^ «Протокол передачи гипертекста (HTTP / 1.1): семантика и содержание» . Tools.ietf.org . Проверено 5 января 2019 .
Внешние ссылки
- RFC 7230, RFC 7231, RFC 7232, RFC 7233, RFC 7234, RFC 7235 (HTTP 1.1)
- RFC 2616 (HTTP 1.1) (устарело)
- RFC 1945 (HTTP 1.0)