Перенаправления используются по разным причинам.
Одна из причин заключается в том, что это повышает конфиденциальность. Когда вы переходите по ссылке, ваш браузер отправляет реферер - сайт, с которого вы заходите.
Это означает, что владелец сайта, на который вы собираетесь, точно знает, откуда вы пришли.
Страница перенаправления между ними скрывает это. Скажите, что страница, которую вы просматриваете, ТАК. SO не использует редирект для ссылок. Это означает, что всякий раз, когда внешний сайт связан с SO, и вы переходите по этой ссылке, владелец внешнего сайта точно знает, с какого SO ответа (или вопроса) вы пришли на его сайт.
Если бы на месте был редирект, третья сторона узнала бы, что вы пришли откуда-то на SO, но больше не откуда именно. Если использовался редирект SE, он мог только узнать, что вы пришли откуда-то из всей сети SE.
Другой причиной может быть безопасность. Некоторые сайты используют параметр GET для хранения идентификаторов сеансов (это было гораздо популярнее в прошлом, когда пользователи, не использующие файлы cookie, вызывали гораздо большую озабоченность). Передача идентификатора сеанса третьей стороне опасна, поскольку позволяет (временно) обойти учетную запись. Перенаправление решает эту проблему, не пропуская идентификатор сеанса через него.
Но есть и другие причины. Владелец сайта может захотеть отследить, какие ссылки нажимает пользователь. Обычно это невозможно. Перенаправление можно легко использовать, чтобы подсчитать, по какой ссылке нажимают и как часто.
Вы также можете отображать информационные страницы между ними. Это может быть сделано по разным причинам - чтобы уведомить пользователя о том, что он покидает ваш сайт (и о курируемом контенте), или отобразить дополнительную рекламу, когда пользователь все равно уходит.
Причины многообразны, и ни одна из них не является абсолютно плохой.
Есть несколько методов, которые могут использоваться, чтобы скрыть это на первый взгляд от пользователя.
<a href="redirect.php?url=example.org">example.org</a>
Обратите внимание, что в этом примере вы видите только example.org
как ссылку, но на самом деле он идет к redirect.php?url=example.org
. В этом случае вы можете увидеть это при наведении указателя мыши в углу браузера.
Однако вы также можете использовать JS, чтобы скрыть это:
<a href="#" onclick="javascript:window.location='redirect.php?url=example.org'">example.org</a>
Здесь ссылка основана на включении JavaScript в вашем браузере и использует его, чтобы привести вас в (скрытое) местоположение. Это можно увидеть, не наведя курсор мыши, а на источник страницы.
Есть еще лучшие способы скрыть это с помощью JS, которые становится все труднее обнаружить.
Это может быть использовано для обмана пользователей. Это одна из причин, почему укороченные URL-адреса стали нежелательными на многих платформах - потому что они используют одну и ту же технику перенаправления, пользователи не видят, где он заканчивается, а также потому, что вы не знаете, какую информацию сокращает URL-адрес Сервис треков от ваших пользователей.