Что именно означает HTTP/1.1 302?
В какой-то статье, которую я читал однажды, говорилось, что это означает прыжок (с одного URI на другой), но я обнаружил этот "302", даже когда на самом деле прыжков вообще не было!
16 ответов
Перенаправление 302 означает, что страница была временно перемещена, а 301 означает, что она была перемещена навсегда.
301s хороши для значения SEO, в то время как 302 - нет, потому что 301s инструктируют клиентов забывать значение исходного URL, в то время как 302 сохраняют значение оригинала и, таким образом, могут потенциально уменьшить значение, создав два логически отличных URL, которые каждый производит один и тот же контент (поисковые системы рассматривают их как отдельные дубликаты, а не как один ресурс с двумя именами).
С июня 2014 года RFC 2616 устарел и больше не должен использоваться в качестве эталонного. RFC 7231 является текущей ссылкой на семантику и содержание протокола HTTP/1.1.
Ответ с 302
это распространенный способ перенаправления URL. Вместе с 302
код состояния, ответ должен включать Location
заголовок с другим URI. Такой заголовок будет прочитан пользовательским агентом и затем выполнит перенаправление:
Веб-браузеры могут измениться с POST
в GET
в последующем запросе. Если это поведение нежелательно, 307
Вместо этого можно использовать код состояния (временное перенаправление).
Вот как 302
Код состояния определен в RFC 7231:
302
(Найденный) код состояния указывает, что целевой ресурс временно находится под другим URI. Поскольку перенаправление может иногда изменяться, клиент должен продолжать использовать эффективный URI запроса для будущих запросов.Сервер ДОЛЖЕН генерировать
Location
поле заголовка в ответе, содержащее ссылку на URI для другого URI. Пользовательский агент МОЖЕТ использоватьLocation
значение поля для автоматического перенаправления. Ответная полезная нагрузка сервера обычно содержит короткую гипертекстовую заметку с гиперссылкой на различные URI.Примечание. По историческим причинам пользовательский агент МОЖЕТ изменить метод запроса с
POST
вGET
для последующего запроса. Если это поведение нежелательно,307
Вместо этого можно использовать код состояния (временное перенаправление).
Согласно веб-документам MDN от Mozilla, типичный пример использования 302
является:
Веб-страница временно недоступна по причинам, которые не были непредвиденными. Таким образом, поисковые системы не обновляют свои ссылки.
Другие коды состояния для перенаправления
RFC 7231 определяет следующие коды состояния для перенаправления:
301
(Переехал навсегда)302
(Найденный)307
(Временное перенаправление)
RFC 7238 был создан для определения другого кода состояния для перенаправления:
308
(Постоянное перенаправление)
Обратитесь к этому ответу для получения дополнительной информации.
Простой способ взглянуть на HTTP 301 против 302 перенаправлений:
Предположим, у вас есть закладка для " http://sample.com/sample". Вы используете браузер, чтобы пойти туда.
Переадресация 302 на другой URL в этот момент будет означать, что вы должны оставить свою закладку на " http://sample.com/sample". Это потому, что целевой URL может измениться в будущем.
Перенаправление 301 на другой URL будет означать, что ваша закладка должна измениться, чтобы указывать на новый URL, так как это постоянное перенаправление.
Из RFC 2616 (спецификация протокола передачи гипертекста):
10.3.3 302 найдено Запрашиваемый ресурс временно находится под другим URI. Поскольку перенаправление может быть изменено в некоторых случаях, клиент ДОЛЖЕН продолжайте использовать Request-URI для будущих запросов. Этот ответ кешируется только если указано заголовком Cache-Control или Expires поле. Временный URI ДОЛЖЕН быть задан полем Location в ответ. Если метод запроса не был HEAD, объект ответ ДОЛЖЕН содержать краткую гипертекстовую заметку с гиперссылкой на новый URI.
Источник:
Из Википедии:
Код состояния ответа HTTP 302 Найдено - наиболее распространенный способ выполнения перенаправления. Это пример производственной практики, противоречащей стандарту.
302 - это ответ, указывающий на изменение местоположения ресурса - "Найдено".
URL, где должен находиться ресурс, должен быть в заголовке ответа "Расположение".
"Переход" должен быть сделан запрашивающим клиентом (сделать новый запрос к URL-адресу ресурса в поле заголовка Location ответа).
С точки зрения SEO, 301 и 302 оба хороши, это зависит от ситуации,
Если только одна версия может быть возвращена (т.е. другая перенаправляет на нее), это здорово! Такое поведение полезно, потому что оно уменьшает дублирующийся контент. В конкретном случае перенаправлений на URL-адреса с косой чертой в результатах поиска, скорее всего, будет показана версия URL-адреса с кодом ответа 200 (чаще всего с URL-адресом с косой чертой) - независимо от того, было ли перенаправление 301 или 302.
Согласно определениям кода статуса http 302 указывает (временное) перенаправление. "Запрашиваемый ресурс временно находится под другим URI"
HTTP-код 302 для перенаправления см. http://en.wikipedia.org/wiki/HTTP_302.
Он говорит браузеру, читающему страницу, пойти куда-нибудь еще и загрузить другую страницу. Его использование очень распространено.
Согласно RFC 1945/ Протокол передачи гипертекста - HTTP / 1.0:
302 Moved Temporarily
The requested resource resides temporarily under a different URL.
Since the redirection may be altered on occasion, the client should
continue to use the Request-URI for future requests.
The URL must be given by the Location field in the response. Unless
it was a HEAD request, the Entity-Body of the response should
contain a short note with a hyperlink to the new URI(s).
If the 302 status code is received in response to a request using
the POST method, the user agent must not automatically redirect the
request unless it can be confirmed by the user, since this might
change the conditions under which the request was issued.
Note: When automatically redirecting a POST request after
receiving a 302 status code, some existing user agents will
erroneously change it into a GET request.
Сначала давайте рассмотрим, как работают 301 и 302.
- 301 -> перемещено навсегда
Представьте, что есть какой-то ресурс вроде -> http://hashcodehub.com/user, теперь в будущем мы меняем имя ресурса на user- info -> теперь URL -адрес должен быть http://hashcodehub.com/user-info ->, но пользователь все еще пытается получить доступ к тому же URL -> http://hashcodehub.com/user -> здесь из бэкэнда мы можем перенаправить пользователя на новый URL и отправить код состояния как 301 -> который используется для постоянно перемещенных.
Выше я объяснил, как работает 301
Давайте разберемся, как 302 будет использоваться в реальной жизни
302 -> Временное перенаправление -> здесь полный URL не нужно менять, но по какой-то причине мы перенаправляем на ресурс в разных местах. Здесь в поле заголовка местоположения мы дадим значение нового URL -адреса ресурса, и браузер снова сделает запрос на URL -адрес ресурса в поле заголовка местоположения ответа.
302 можно использовать на всякий случай, если на нашей странице есть что-то неподходящее. Пока мы решаем эту проблему, мы можем перенаправить все, что мы использовали, на какой-то временный URL -адрес и исправить проблему.
Его также можно использовать, если на веб-сайте есть какое-то приложение, и некоторые страницы требуют восстановления, в этом случае мы также можем перенаправить пользователя на другой ресурс.
Редирект 302 служит, например, для того, чтобы иметь несколько версий домашней страницы на разных языках. Основная может быть на английском языке; но если посетители приходят из других стран, эта система автоматически перенаправляет их на страницы на их языке.
Для всех, кому может быть интересно узнать об именах, я просто добавлю, что это, вероятно, называется "Найдено", потому что основной ресурс (например, частная веб-страница), который намеревается получить пользователь, в этот момент недоступен (например, пользователь еще не подтвердил свою личность), поэтому вместо этого сервер нашел новый ресурс, который может получить пользователь (который в наиболее распространенном случае является страницей входа в систему).
Кроме того, это "заблудиться и найти" в манере пряток, что означает, что потерянный ресурс со статусом 302 теряется только временно, он не должен быть потерян навсегда (если у игрока нет плохих намерений;)).
- Код 302 указывает на временное перенаправление.
- Одна из наиболее примечательных особенностей, которые отличают его от редиректа 301, заключается в том, что в случае перенаправления 302 эффективность SEO не переносится на новый URL.
- Это связано с тем, что это перенаправление было разработано для использования, когда необходимо перенаправить контент на страницу, которая не будет окончательной. Таким образом, как только перенаправление будет устранено, исходная страница не потеряет своего позиционирования в поисковой системе Google.
ПРИМЕР:- Хотя редирект 302 возникает нечасто, в некоторых случаях этот параметр может быть очень полезным. Это самые частые случаи:
- Когда мы понимаем, что на странице есть неприемлемый контент. Пока мы решаем проблему, мы можем перенаправить пользователя на другую страницу, которая может быть интересна.
- В случае, если атака на наш веб-сайт требует восстановления любой из страниц, это перенаправление может помочь нам свести к минимуму вероятность.
Редирект 302 - это код, который сообщает посетителям определенного URL-адреса, что страница была временно перемещена, направляя их непосредственно в новое место.
Другими словами, перенаправление 302 активируется, когда роботы Google или другие поисковые системы запрашивают загрузку определенной страницы. В этот момент, благодаря этому перенаправлению, сервер возвращает автоматический ответ с указанием нового URL.
Таким образом можно избежать ошибок и неудобств как для поисковых систем, так и для пользователей, что гарантирует плавную навигацию.
Для получения более подробной информации обратитесь к этой статье.
Код состояния 302 - это код состояния ответа HTTP, указывающий, что запрошенный ресурс был временно перемещен на другой URI. Поскольку директива местоположения или текущего перенаправления может быть изменена в будущем, клиент, получивший код ответа 302 Found, должен продолжать использовать исходный URI для будущих запросов.
HTTP-ответ с этим кодом состояния дополнительно предоставит URL-адрес в поле заголовка Location. Это приглашение пользовательскому агенту (например, веб-браузеру) сделать второй, в остальном идентичный, запрос к новому URL-адресу, указанному в поле местоположения. Конечным результатом является перенаправление на новый URL.
302 : этот код состояния появляется, когда ресурс или страница, которую вы пытаетесь загрузить, были временно перемещены в другое место — с помощью перенаправления 302.
Я знаю, что у 302 есть несколько вариантов использования, которые я считаю вполне уместными для обозначения временного перенаправления по сравнению с http -> https, который является постоянным .
Google использует 302 для перенаправления своих сервисов на версии на языке/стране, которые соответствуют вам.
cdn (например, unpkg.com, используемый npm) использует 302 для перенаправления файла на его текущую/точную версию, которая изменится в будущем.
Когда на веб-сайте электронной коммерции есть сезонная акция, она хочет показывать ее в этот период, а в другое время возвращаться на исходную страницу.