0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>Давайте посмотрим, как в HTTP работают редиректы. Если сделать запрос на http.hexlet.app, то в ответ мы получим редирект:</p>
1
<p>Давайте посмотрим, как в HTTP работают редиректы. Если сделать запрос на http.hexlet.app, то в ответ мы получим редирект:</p>
2
<p>Это связано с тем, что http.hexlet.app работает только по HTTPS. Но HTTP он тоже обрабатывает. Ведь браузеру, который будет обращаться к сайту, нужно подсказать, что нужно сделать редирект.</p>
2
<p>Это связано с тем, что http.hexlet.app работает только по HTTPS. Но HTTP он тоже обрабатывает. Ведь браузеру, который будет обращаться к сайту, нужно подсказать, что нужно сделать редирект.</p>
3
<p>Как это работает? Возвращается заголовок 300 (формат редиректов). В нашем примере мы видим<em>301 Moved Permanently</em>. Это означает, что ресурс, на который послали запрос, перемещен навсегда, и больше не имеет смысла сюда никогда заходить. Этим активно пользуются при<a>SEO</a>. Поисковики сохраняют все параметры страниц по старому адресу в индексе.</p>
3
<p>Как это работает? Возвращается заголовок 300 (формат редиректов). В нашем примере мы видим<em>301 Moved Permanently</em>. Это означает, что ресурс, на который послали запрос, перемещен навсегда, и больше не имеет смысла сюда никогда заходить. Этим активно пользуются при<a>SEO</a>. Поисковики сохраняют все параметры страниц по старому адресу в индексе.</p>
4
<p>Редиректы бывают разных видов, например, временный редирект<em>302 Found</em>. Он используется, если что-то произошло: сайт не работает, заблокирован и т.д. В основном это технические истории.</p>
4
<p>Редиректы бывают разных видов, например, временный редирект<em>302 Found</em>. Он используется, если что-то произошло: сайт не работает, заблокирован и т.д. В основном это технические истории.</p>
5
<p>Но как узнать, куда происходит перенаправление? И вновь никакой магии - все основано на заголовках. В принципе не важен даже<em>body</em>. В зависимости от того, как работает система, через которую послан запрос,<em>body</em>может отобразиться, а может и нет. Главное, что появляется заголовок<em>Location</em>. Он обязан быть в случае такого статуса ответа, который указывает то место, куда нужно перейти.</p>
5
<p>Но как узнать, куда происходит перенаправление? И вновь никакой магии - все основано на заголовках. В принципе не важен даже<em>body</em>. В зависимости от того, как работает система, через которую послан запрос,<em>body</em>может отобразиться, а может и нет. Главное, что появляется заголовок<em>Location</em>. Он обязан быть в случае такого статуса ответа, который указывает то место, куда нужно перейти.</p>
6
<p>Все. Дальше браузер сделал бы перенаправление автоматически. Но так как мы находимся в telnet, то никакую работу он за нас не делает и просто возвращает этот редирект.</p>
6
<p>Все. Дальше браузер сделал бы перенаправление автоматически. Но так как мы находимся в telnet, то никакую работу он за нас не делает и просто возвращает этот редирект.</p>
7
<p>Иногда на сайтах происходят ошибки, и те постоянно выдают редиректы. Браузер будет пытаться бесконечно переходить по ним. Чтобы не убить систему, существуют различные защиты. Например, они умеют отслеживать циклические редиректы, и сообщать, что необходимо остановить работу.</p>
7
<p>Иногда на сайтах происходят ошибки, и те постоянно выдают редиректы. Браузер будет пытаться бесконечно переходить по ним. Чтобы не убить систему, существуют различные защиты. Например, они умеют отслеживать циклические редиректы, и сообщать, что необходимо остановить работу.</p>
8
<p>Библиотеки, с которыми часто работают программисты, обычно имеют опции. Именно опции говорят, нужно ли следовать за редиректом, и если следовать, то на какую глубину.</p>
8
<p>Библиотеки, с которыми часто работают программисты, обычно имеют опции. Именно опции говорят, нужно ли следовать за редиректом, и если следовать, то на какую глубину.</p>