HTTP редиректы (англ. redirect) используются для переадресации (перенаправления) пользователей сайта на другой URL. Указать временный или новый постоянный адрес страницы, открывать сайт только с www, перенаправить пользователя на защищенный HTTPS протокол - эти и другие задачи помогает решить веб редирект.
Редирект 300 - выбор из нескольких вариантов
Этот редирект используется в случае, когда есть несколько вариантов предоставления документа. Сервер предоставляет клиенту список документов, состоящий максимум из пяти элементов. Клиент может выбрать наиболее предпочтительный вариант.
Примером использования редиректа 300 может стать выбор нужного языка документа для разных пользователей или выбор подходящей кодировки, если это необходимо браузеру.
Редирект 301 - перемещено навсегда
Самый часто используемый HTTP редирект (по крайней мере в моей практике) - это редирект 301.
Используется 301 редирект для указания, что запрашиваемая страница была перенесена на новый URL на постоянной основе, или другими словами - документ перемещен навсегда.
Этот редирект следует использовать в тех случаях, когда документ не планируется показывать по данному URL.
Используйте 301-й редирект, если:
- вы хотите, чтобы ваш сайт всегда был доступен только с www (редирект на www);
- для перенапревления на защищенный протокол https;
- при смене домена;
- при смене адреса страницы (например, после переноса сайта на новую CMS, если URL адреса страниц не были сохранены при переносе);
- в других подходящих случаях.
Когда стоит делать 301 редирект и нужно ли вообще?
Да, нужно. Редирект 301 поможет сохранить позиции сайта в поисковой выдаче.
Именно этот редирект позволяет передавать "вес" страницы со старого URL на новый.
Редирект 302 - найдено / перемещено временно
Редирект 302 может означать, что документ недоступен по этому адресу сейчас но будет доступен в будущем, либо, что документ может быть найден под другим адресом.
Для устранения неоднозначности следует использовать редиректы 303 и 307.
Использоваться временный редирект может, например, при проведении технических работ на сайте, делающих невозможным отображение запрашиваемого документа. Также, временный редирект может быть поставлен со стороны хостинга, если пакет услуг не был продлен (но так делают далеко не все хостинг провайдеры, поэтому позаботьтесь о месте размещении вашего сайта заранее).
Редирект 303 - смотрите другое
Указывает на то, что запрошенный документ найден под другим URL адресом и на него нужно перейти используя GET запрос.
Редирект 303 может быть использован, например при поиске по сайту. Допустим пользователь ввел в форму поиска артикул товара на сайте интернет-магазина, тогда в результатах поиска будет показан только 1 товар. Альтернативой в этом случае может стать 303-й редирект. С помощью него можно, вместо показа страницы результатов поиска с одной найденной позицией, сразу перенаправить пользователя на страницу товара, тем самым сэкономив его время.
Редирект 304 - без изменений
Редирект 304 возвращается в случае, если с момента последнего обращения к документу, в документе не произошло изменений. Указывает, что вместо загрузки, документ можно взять из локального хранилища (из кэша).
Редирект 306
Код 306 зарезервирован для использования в будущем. Данный редирект не используется в настоящее время.
Редирект 307 - перемещено временно
Редирект 307 означает, что документ недоступен по этому адресу сейчас. В будущем документ снова будет доступен по этому URL.
Редирект 308 - перемещено навсегда / возобновление после прерывания
Как и редирект 302, может использоваться в двух случаях.
В первом случае выполняет ту же функцию, что и редирект 301 (указывает, что документ по этому адресу не будет доступен), но с сохранением HTTP метода (GET, POST).
Второй случай - это указание на то, что загрузка при использовании возобновляемого PUT или POST запроса застопорилась. Предлагает ее возобновить.