У меня есть приложение, которое регистрирует посещения пользователей. Ни один из этих посещений напрямую не доступен, 100% этих посещений направляются с другого сайта.
Я передаю $_SERVER['HTTP_REFERER']
в базу данных. Приблизительно 35% занесенных заготовок передают референт, остальные – пустые.
Для этого есть причина?
Если пользователь посещает ваш сайт напрямую, нет реферера. Также возможно, что они настроили его, поэтому их браузер никогда не отправляет реферер.
В соответствии с этим ответом браузеры не обязательно отправляют реферер при выполнении метаобновления.
Существует несколько причин, по которым HTTP_REFERER
может быть пустым.
window.open
, window.location
и даже установка target="_blank"
в привязках или meta refresh
. file_get_contents
, fopen
и других подобных функций на других языках, вероятно, не будет устанавливать запрос реферера. Есть, вероятно, больше ситуаций, когда это может произойти, я обновлю, если смогу придумать что-нибудь, что кажется разумным.
Браузеры иногда будут включать referer
в запрос. Но это не обязательно делать ( referer
на добровольной основе на 100%). На самом деле существуют различные проблемы конфиденциальности и безопасности, связанные с referer
(например, если HTTPS-сайт ссылается на HTTP-сайт, браузер не должен включать ссылающийся сайт в качестве referer
). Так что не полагайтесь на это.
При связывании одного документа с другим в Internet Explorer 4.0 и более поздних версиях заголовок Referer не будет отправлен, когда ссылка находится на странице HTTPS на странице, отличной от HTTPS. Заголовок Referer также не будет отправлен, если ссылка связана с протоколом, отличным от HTTP (S), например file: //, на другой странице. для получения дополнительной информации перейдите по этой ссылке
Обычно, когда вы застряли в поиске, почему этого не хватает: – Когда-то ваш референт https и вы на http, он будет потерян.
В противном случае: – Доступ пользователя, вводя URL напрямую. – Пользователь имеет закладки и идет из закладок. – Когда-нибудь пользователь сохранил значение по умолчанию для браузера (аналогично закладке). Прокси-серфинг может удалить референт. – доступ к веб-сайту в виде ботов (поисковая система)