В какой-то статье, которую я однажды прочитал, говорилось, что это означает прыжок (с одного URI на другой), но я обнаружил этот "302", даже когда на самом деле никакого прыжка не было!
В какой-то статье, которую я однажды прочитал, говорилось, что это означает прыжок (с одного URI на другой), но я обнаружил этот "302", даже когда на самом деле никакого прыжка не было!
Ответы:
Редирект 302 означает, что страница была временно перемещена, а 301 означает, что она была перемещена навсегда.
301-е хороши для ценности SEO, а 302-е - нет, потому что 301-е инструктируют клиентов забыть значение исходного URL-адреса, в то время как 302 сохраняет значение оригинала и, таким образом, потенциально может снизить ценность, создав два логически разных URL-адреса, которые каждый производит один и тот же контент (поисковые системы рассматривают их как отдельные дубликаты, а не как один ресурс с двумя именами).
Этот вопрос задавали давно, когда еще витал 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 :
Код состояния
302
(Найден) указывает, что целевой ресурс временно находится под другим URI. Поскольку перенаправление может иногда изменяться, клиент должен продолжать использовать действующий URI запроса для будущих запросов.Серверу СЛЕДУЕТ генерировать
Location
поле заголовка в ответе, содержащее ссылку URI для другого URI. Пользовательский агент МОЖЕТ использоватьLocation
значение поля для автоматического перенаправления. Полезные данные ответа сервера обычно содержат короткую гипертекстовую заметку с гиперссылкой на разные URI.Примечание. По историческим причинам пользовательский агент МОЖЕТ изменить метод запроса с
POST
наGET
для последующего запроса. Если такое поведение нежелательно,307
вместо него можно использовать код состояния (временное перенаправление).
Согласно веб-документации MDN от Mozilla , типичный вариант использования 302
:
Веб-страница временно недоступна по непредвиденным причинам. Таким образом, поисковые системы не обновляют свои ссылки.
В RFC 7231 определяет следующие коды состояния для переадресации:
RFC 7238 был создан , чтобы определить другой код состояния для перенаправления:
308
(Постоянное перенаправление)Обратитесь к этому ответу для получения дополнительных сведений.
Location
прошла, спасибо ( заголовок был тем, что мне помогло). Оказывается, я звонил в службу, http
и они переехали https
, все, что я получил в ответ, было то 302
, что как только я прочитал Location
здесь заголовок, я увидел http/https
разницу. Спасибо!
Простой способ посмотреть на перенаправления 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 Найден - это наиболее распространенный способ выполнения перенаправления. Это пример производственной практики, противоречащей стандарту.
Согласно определениям кода статуса http, 302 указывает на (временное) перенаправление. «Запрошенный ресурс временно находится под другим URI»
302 - это ответ, указывающий на изменение местоположения ресурса - «Найдено».
URL-адрес, по которому теперь должен находиться ресурс, должен быть в заголовке ответа Location.
«Переход» должен выполняться запрашивающим клиентом (сделать новый запрос URL-адреса ресурса в поле заголовка Location ответа).
С точки зрения SEO, 301 и 302 оба хороши в зависимости от ситуации,
Если может быть возвращена только одна версия (т. Е. Другая перенаправляет на нее), это прекрасно! Такое поведение выгодно, поскольку сокращает дублирование содержимого. В конкретном случае перенаправления на завершающие URL-адреса косой черты в наших результатах поиска, вероятно, будет отображаться версия URL-адреса с кодом ответа 200 (чаще всего URL-адрес завершающей косой черты) - независимо от того, было ли перенаправление 301 или 302.
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.
ПРИМЕР: - Хотя редирект 302 возникает нечасто, в некоторых случаях этот параметр может быть очень полезным. Это самые частые случаи:
Редирект 302 - это код, который сообщает посетителям определенного URL-адреса, что страница была временно перемещена, направляя их непосредственно в новое место.
Другими словами, перенаправление 302 активируется, когда роботы Google или другие поисковые системы запрашивают загрузку определенной страницы. В этот момент, благодаря этому перенаправлению, сервер возвращает автоматический ответ с указанием нового URL.
Таким образом можно избежать ошибок и неудобств как для поисковых систем, так и для пользователей, что гарантирует плавную навигацию.
Для получения более подробной информации обратитесь к этой статье .
Код состояния 302 - это код состояния ответа HTTP, указывающий, что запрошенный ресурс был временно перемещен на другой URI. Поскольку директива расположения или текущего перенаправления может быть изменена в будущем, клиент, получивший код ответа 302 Found, должен продолжать использовать исходный URI для будущих запросов.
HTTP-ответ с этим кодом состояния дополнительно предоставит URL-адрес в поле заголовка Location. Это приглашение пользовательскому агенту (например, веб-браузеру) сделать второй, в остальном идентичный, запрос к новому URL-адресу, указанному в поле местоположения. Конечным результатом является перенаправление на новый URL.
Для тех, кому может быть интересно узнать об именах, я просто добавлю, что это, вероятно, называется «Найдено», потому что основной ресурс (например, частная веб-страница), который пользователь намеревается получить, недоступен в этот момент (например, пользователь еще не подтвердил свою личность), поэтому вместо этого сервер нашел новый ресурс, который может получить пользователь (который в наиболее распространенном случае является страницей входа в систему).
Также это «заблудиться и найти» в манере пряток, что означает, что потерянный ресурс со статусом 302 теряется только временно , он не должен быть потерян навсегда (если у игрока нет плохих намерений;)).