Редирект 301 и 302, и разница между типами HTTP редиректов

Переадресация определяется при помощи HTTP кода 301 или 302, отдаваемых веб-сервером в ответ на запрос клиента. При этом редиректы различаются, 302 обычно устанавливается временно, 301 часто характеризуется как «ресурс перемещен навсегда».

 

 

Редирект 301 и 302: разница между ними

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

 

Запрос отправляется когда происходит обращение через браузер, для тестирования же работы редиректа удобно использовать curl.

 

curl -v server-gu.ru

* Rebuilt URL to: server-gu.ru/
* Trying 185.93.111.169…
* Connected to server-gu.ru (185.93.111.169) port 80 (#0)
> GET / HTTP/1.1
> Host: server-gu.ru
> User-Agent: curl/7.47.0
> Accept: */*
>
< HTTP/1.1 301 Moved Permanently
< Server: nginx/1.6.2
< Date: Thu, 07 Sep 2017 17:09:12 GMT
< Content-Type: text/html; charset=iso-8859-1
< Content-Length: 327
< Connection: keep-alive
< Location: https://server-gu.ru/

 

curl удобно использовать потому, что он позволяет избежать кэширования информации браузером. Если проверять работу редиректа через браузер и установлен редирект 301 каждый раз раз придется сбрасывать кэш.

В примере выше видно, что на уровне сервера установлен 301 редирект, который перенаправляет все запросы на версию сайта с https. Также редиректы часто используются для переадресации с версии ресурса с www на версию без www и для переадресации всех запросов с одного домена на другой.

 

 

Редирект может быть настроен в Nginx , в конфигурационном файле Apache или через файл .htaccess.

При настойке удобно сначала устанавливать редирект 302, затем, когда он отрабатывает корректно, затем заменять его на 301.