Вопрос

Должен ли клиент вести себя по-другому?Как?

Это было полезно?

Решение

Статус 301 означает, что ресурс (страница) навсегда перемещен в новое место.Клиент/браузер не должен пытаться запросить исходное местоположение, а должен с этого момента использовать новое местоположение.

Статус 302 означает, что ресурс временно находится где-то еще, и клиент/браузер должен продолжать запрашивать исходный URL-адрес.

Другие советы

Когда паук поисковой системы находит код состояния 301 в заголовке ответа веб-страницы, он понимает, что эта веб-страница больше не существует, он ищет заголовок местоположения в ответ, выбирает новый URL-адрес и заменяет проиндексированный URL-адрес новым, а также передает рейтинг страницы. .

Таким образом, поисковая система обновляет все проиндексированные URL-адреса, которые больше не существуют (найден 301), используя новый URL-адрес, это сохранит трафик вашей старой веб-страницы, рейтинг страницы и перенаправит ее на новую (вы не потеряете трафик старой веб-страницы).

Браузер:если браузер обнаруживает код состояния 301, то он кэширует сопоставление старого URL-адреса с новым URL-адресом, клиент/браузер не будет пытаться запрашивать исходное местоположение, а с этого момента будет использовать новое местоположение, если кеш не будет очищен.

enter image description here

Когда паук поисковой системы обнаруживает статус 302 для веб-страницы, он лишь временно перенаправляется на новое место и сканирует обе страницы.URL-адрес старой веб-страницы все еще существует в базе данных поисковой системы, и она всегда пытается запросить старое местоположение и просканировать его.Клиент/браузер все равно попытается запросить исходное местоположение.

enter image description here

Подробнее о том, как это реализовать в asp.net C# и как это повлияет на поисковые системы, читайте здесь. http://www.dotnetbull.com/2013/08/301-permanent-vs-302-temporary-status-code-aspnet-csharp-Implementation.html

В основном 301 против 302 важно для индексации в поисковых системах, так как их краулеры учитывают это и передают PageRank при использовании 301.

Видеть Ответ Питера Ли Больше подробностей.

301 заключается в том, что запрошенному ресурсу присвоен новый постоянный URI, и любые будущие ссылки на этот ресурс должны выполняться с использованием одного из возвращенных URI.

302 заключается в том, что запрошенный ресурс временно находится под другим URI.

Поскольку время от времени перенаправление может быть изменено, клиент должен продолжать использовать Request-URI для будущих запросов.

Этот ответ кэшируется только в том случае, если он указан в поле заголовка Cache-Control или Expires.

301 редирект кэшируется на неопределенный срок. (по крайней мере, в некоторых браузерах).

Это означает, что если вы настроите 301 и посетите эту страницу, вы не только будете перенаправлены, но и это перенаправление будет кэшировано.

Когда вы снова посещаете эту страницу, ваш браузер* даже не пытается запросить этот URL-адрес, он просто переходит к кэшированной цели перенаправления.

Единственный способ отменить ошибку 301 для посетителя с этим перенаправлением в Cache — это перенаправление обратно на исходный URL**.В этом случае браузер заметит петлю и, наконец, действительно запросит введенный URL-адрес.

Очевидно, что это не вариант, если вы решили использовать 301 на Facebook или на любом другом ресурсе, который вы не полностью контролируете.

К сожалению, многие хостинг-провайдеры предлагают в своем интерфейсе администратора функцию, называемую просто «Перенаправление», которая выполняет перенаправление 301.Если вы используете это для временного перенаправления своего домена на Facebook в качестве страницы, которая появится в ближайшее время, вы, по сути, облажались.

*по крайней мере Chrome и Firefox, согласно Как долго браузеры кэшируют HTTP 301?.Только что попробовал с Chrome 45.Редактировать:Safari 7.0.6 на Mac также кэширует, перезапуск браузера не помог (ссылка говорит, что в Safari 5 на Windows это помогает).

**Я пробовал JavaScript window.location = '', потому что это было бы решение, которое можно было бы применить в большинстве случаев - оно не работает.Это приводит к необнаруженному бесконечному циклу.Однако php header('Location: new.url') разрывает цикл

Нижняя граница: используйте 301 только в том случае, если вы абсолютно уверены, что никогда больше не будете использовать этот URL.Обычно никогда в корневом каталоге (example.com/)

Основная проблема с 301 заключается в том, что браузер будет кэшировать перенаправление, даже если вы отключили перенаправление на уровне сервера.

Всегда лучше использовать 302, если вы включаете перенаправление на короткий период обслуживания.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top