Я не понимаю: как в состоянии веб-сервер и средства отслеживания как Google Analytics отслеживать направления?
Это - часть HTTP?
Это, немного (ООН) указали поведение браузеров?
По-видимому, каждый раз, когда Вы нажимаете на ссылку на веб-странице, исходная веб-страница передается вдоль запроса.
Каков точный механизм позади этого? Это указано некоторой спецификацией?
Я прочитал несколько документов, и я играл со своим собственным сервером Tomcat и своей собственной учетной записью Google Analytics, но я не понимаю, как "волшебство" происходит.
Премия (полностью связанный) вопрос: если, на моем собственном сайте (подаваемый Tomcat), я поместил ссылку на другой сайт, другой сайт рассматривает мой веб-сайт как "ссылающийся домен" без меня делающий что-либо специальное в Tomcat?
Ссылка (неправильно написана в спецификации) - это HTTP-заголовок. Это стандартный заголовок, который поддерживают все основные HTTP-клиенты (хотя некоторые прокси-серверы и брандмауэры могут быть настроены на его удаление или искажение). Когда вы нажимаете ссылку, ваш браузер отправляет HTTP-запрос, который, помимо прочего, содержит запрашиваемую страницу и страницу, на которой была найдена ссылка.
Поскольку это заголовок клиента / запроса, сервер не имеет значения, и да, нажатие на ссылку на странице, размещенной на вашем собственном сервере, приведет к отправке URL этой страницы на сервер другого сайта, хотя ваш сервер может не обязательно быть доступным с этого другого сайта, в зависимости от конфигурации вашей сети.
Ваш браузер передает реферер при каждом запросе страницы.
Кажется необычным, что у JavaScript тоже есть доступ к этому, но он есть.
Да, браузер отправляет предыдущую страницу в HTTP-заголовках. Это определено в спецификации HTTP/1.1:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.36
Ответ на ваш вопрос - да, поскольку браузер отправляет referer.
From: http://en.wikipedia.org/wiki/HTTP_referrer
Поле referrer является необязательной частью HTTP-запроса, отправляемого браузерной программой на веб-сервер.
Из RFC 2616:
Поле заголовка запроса Referer[sic] позволяет клиенту указать, для для пользы сервера, адрес (URI) ресурса, с которого запрос-URI был получен (запрос "referrer", хотя заголовок поле написано неправильно.)
Одна деталь, чтобы добавить к тому, что уже было сказано о том, как браузеры отправляют его: HTTPS немного меняет поведение. Я не знаю, есть ли это в какой-либо спецификации, но если вы переходите с HTTPS на HTTP, и если вы остаетесь на одном домене или переходите на разные домены, то иногда реферер не отправляется. Я не знаю точных правил, но я наблюдал это в реальности. Если есть какая-то спецификация или описание об этом, было бы здорово.
EDIT: хорошо, RFC говорит прямо:
Клиенты НЕ ДОЛЖНЫ включать поле заголовка Referer в (небезопасный) HTTP запрос, если страница, на которую ссылаются, была передана по безопасному протоколу.
Таким образом, если вы переходите с HTTPS страницы на HTTP ссылку, информация о реферере не отправляется.
Если вы запрашиваете веб-страницу с помощью браузера, ваш браузер отправит заголовок HTTP Referer вместе с запросом.
«Поле реферера является необязательной частью HTTP-запроса, отправляемого программой браузера на веб-сервер»
Когда вы щелкаете ссылку, браузер добавляет к запросу заголовок Referer
. Это часть HTTP . Подробнее об этом можно прочитать здесь .