Откуда пришёл посетитель
Referer — HTTP-заголовок запроса, содержащий адрес страницы, с которой пользователь перешёл по ссылке или на которой загрузился ресурс. Если вы кликнули на ссылку в статье, сайт-получатель по этому заголовку может узнать, на каком именно материале вы были.
Название содержит историческую орфографическую ошибку: правильно было бы «referrer», но в стандарте закрепилась короткая форма, и написание сохранилось. В настройках политики, напротив, уже используется правильная форма слова.
Особенность заголовка в том, что отправляет его браузер автоматически, без действий пользователя, и сайт-получатель получает его вместе с каждым запросом ресурса. Отказаться можно только настройкой политики, но не отдельным нажатием кнопки.
Что именно уходит наружу
Заголовок отправляется не только при переходе по ссылке. Его получают и сторонние сервисы, чьи картинки, скрипты и счётчики встроены в страницу: аналитика, реклама, шрифты. Им уходит адрес страницы, где вы находитесь, иногда вместе с параметрами.
Вот тут кроется риск. Если в адресе есть идентификатор сессии, токен сброса пароля или поисковая фраза, они могут попасть в журналы стороннего сервера. Именно поэтому секретные данные не рекомендуется передавать в параметрах адреса.
Так же ведут себя ссылки на внешние сервисы в письмах и мессенджерах: сайт видит, что переход был из приложения, но подробности зависят от программы. Многие мессенджеры вообще не передают ничего, потому что открывают адреса в отдельном окне.
Политика Referrer-Policy
Сайт может указать, сколько данных отправлять, с помощью заголовка Referrer-Policy или атрибута на ссылке. Варианты идут от «не отправлять ничего» до «отправлять полный адрес». Промежуточный вариант — только источник, то есть схема и домен без пути и параметров, либо полный адрес внутри сайта и только домен наружу.
Современные браузеры по умолчанию используют умеренную политику: при переходе на другой сайт передают лишь источник, а не полный адрес. Это сократило утечки, хотя не устранило их полностью: адрес источника всё равно виден получателю.
На что это влияет
Владельцы сайтов используют Referer для статистики: откуда приходят посетители, какие внешние ссылки работают. Некоторые сервисы применяют его как простую защиту от «горячих» ссылок на картинки, а иногда — как одну из проверок против подделки запросов, хотя надёжной защитой он не является: заголовок легко отсутствует или подделывается вне браузера.
Для приватности значение прямое: чем меньше Referer раскрывает, тем меньше внешние ресурсы узнают о вашем маршруте по сайтам.
Для владельцев сайтов есть и обратная сторона: если большинство браузеров теперь передаёт только источник, аналитика по конкретным страницам-источникам становится менее подробной, и метки в самих ссылках остаются единственным точным способом учёта.
Распространённые заблуждения: Заголовок Referer
«Referer раскрывает мой IP». Нет, IP определяется соединением и передаётся независимо. «Пустой Referer — признак чего-то плохого». Нет, его нет при вводе адреса вручную, при переходе из закладки или из некоторых приложений. «Отключение Referer ломает сайты». Изредка ломает: часть сервисов ждёт заголовок, но чаще эффект не заметен.
Ещё одна ошибка — путать заголовок и историю браузера. История хранится локально, а Referer — временная часть запроса.
Как посмотреть и настроить
Откройте инструменты разработчика (F12), вкладку «Сеть» и любой запрос: в заголовках запроса найдите строку Referer. Настройка на своей стороне: в Firefox есть параметр, ограничивающий передачу; в Chromium-браузерах поведение определяется политикой по умолчанию и настройками сайтов, а расширения могут его дополнительно урезать. Для ссылок в собственных материалах добавляйте атрибут rel со значением noreferrer, чтобы адрес вашей страницы не уходил получателю.
Чтобы убедиться, что политика работает, откройте страницу, перейдите по внешней ссылке и снова посмотрите заголовки запроса на новом сайте: вы увидите, передана ли полная страница, только домен или пусто.