Как HTTP 302 работает? Я хотел бы знать внутренности
Вы имеете в виду, как браузеры обрабатывают это? Сервер отправляет код 302
вместе с заголовком Location
, а браузер вместо этого запрашивает новый URI, указанный в заголовке Location
.
В отличие от 301 (перемещено навсегда)
, браузер продолжает использовать исходный URI для выполнения запросов, если код 302
уходит
Сервер возвращает HTTP-ответ с кодом 302
, указывающим на временное перенаправление, и включает заголовок Location:
, указывающий новый URI, например
HTTP/1.1 302 Found
Location: http://some-other-url
И, возможно, другие заголовки по усмотрению сервера.
Браузер обычно воспринимает это как указание автоматически сделать новый, отдельный запрос на другой URI, указанный в заголовке location. Клиент (браузер) не вынужден делать это (теоретически он может просто вывести сообщение пользователю или сделать что-либо еще), но именно так обычно ведут себя HTTP-клиенты.
Обратите внимание, что поскольку 302 является временным перенаправлением, хорошо воспитанный клиент будет продолжать использовать старый URL в будущем, а не переходить непосредственно на новый (301 является постоянным перенаправлением).
Что внутри? 302 - это код возврата, который сервер дает клиенту, что делает клиент до него. RFC содержат указания о том, что должен делать клиент , , но в реальном мире 301, 302, 303 и 307 обрабатываются одинаково в основных браузерах.