Как работает HTTP 302? Я хотел бы знать внутренности
Как работает HTTP 302?
Ответ 1
Вы имеете в виду, как браузеры обрабатывают его? Сервер отправляет код 302
вместе с заголовком Location
, а браузер запрашивает новый URI, указанный заголовком Location
.
В отличие от 301 (Moved Permanently)
, браузер продолжает использовать исходный URI для выполнения запросов, если код 302
уходит
Ответ 2
Сервер возвращает ответ HTTP с кодом 302
, указывающий временное перенаправление, и включает заголовок Location:
, указывающий новый URI, например
HTTP/1.1 302 Found
Location: http://some-other-url
И потенциально другие заголовки на усмотрение сервера.
Обычно браузер принимает это как директиву для автоматического создания нового отдельного запроса для другого URI, указанного в заголовке местоположения. Клиент (браузер) не вынужден это делать (теоретически он может просто отображать сообщение пользователю или делать все, что он хочет), а также то, как обычно ведут себя клиенты HTTP.
Обратите внимание, что поскольку 302 является временным перенаправлением, хорошо выполненный клиент будет продолжать использовать старый URL-адрес в будущем, вместо того, чтобы перейти непосредственно к новому (301 - постоянное перенаправление).
Ответ 3
С: http://www.ietf.org/rfc/rfc2616.txt а также http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
10.3.3 302 Найдено
Запрошенный ресурс временно находится под другим URI. Поскольку перенаправление может иногда изменяться, клиент ДОЛЖЕН продолжать использовать Request-URI для будущих запросов. Этот ответ только кэшируется, если указано заголовком Cache-Control или Expires поле.
Временной URI ДОЛЖЕН быть предоставлен полем "Место" в ответ. Если метод запроса не был ГОЛОВЫМ, объект ответ ДОЛЖЕН содержать короткую гипертекстовую заметку с гиперссылкой на новый URI (ы).
Если код статуса 302 получен в ответ на запрос другого чем GET или HEAD, пользовательский агент НЕ ДОЛЖЕН автоматически перенаправлять запрос, если он не может быть подтвержден пользователем, поскольку это может изменить условия, при которых был отправлен запрос.
Note: RFC 1945 and RFC 2068 specify that the client is not allowed
to change the method on the redirected request. However, most
existing user agent implementations treat 302 as if it were a 303
response, performing a GET on the Location field-value regardless
of the original request method. The status codes 303 and 307 have
been added for servers that wish to make unambiguously clear which
kind of reaction is expected of the client.
Ответ 4
Внутренности чего? 302 - код возврата, который сервер дает клиенту, то, что делает клиент, зависит от него. RFC дают рекомендации относительно того, что должен делать клиент, но в реальном мире 301, 302, 303 и 307 все обрабатываются одинаковыми способами с помощью основных браузеров.
Ответ 5
Просто аддон- Важно отметить, что клиент-клиент останавливается на одном и том же URL-адресе с одинаковым запросом последовательно/часто.