我不明白:Google Analytics等网络服务器和跟踪器如何跟踪推介?
它是HTTP的一部分吗?
是否有某些(未)指定的浏览器行为?
显然,每次点击网页上的链接时,都会在请求中传递原始网页。
背后的确切机制是什么?它是由某些规范指定的吗?
我已经阅读了一些文档,并且我使用了自己的Tomcat服务器和我自己的Google Analytics帐户,但我不明白“神奇”的发生方式。
奖金(完全相关)问题:如果,在我自己的网站上(由Tomcat提供),我将链接指向另一个网站,另一个网站是否将我的网站视为“推荐人”,而我没有在Tomcat做任何特别的事情?
答案 0 :(得分:10)
Referer(在规范中拼写错误)是一个HTTP标头。它是所有主要HTTP客户端都支持的标准标头(尽管某些代理服务器和防火墙可以配置为剥离或破坏它)。当您单击某个链接时,您的浏览器会发送一个HTTP请求,其中包含所请求的页面以及找到该链接的页面等。
由于这是客户端/请求标头,因此服务器无关紧要,是的,单击您自己服务器上托管的页面上的链接会导致该页面的URL被发送到其他站点的服务器,尽管您的服务器可能不会必须可以从该其他站点访问,具体取决于您的网络配置。
答案 1 :(得分:8)
添加到已经说过的关于浏览器如何发送它的内容的一个细节:HTTPS稍微改变了行为。我不知道它是否在任何规范中,但如果您从HTTPS跳转到HTTP,并且如果您停留在同一个域或转到不同的域,则有时不会发送引用者。我不知道确切的规则,但我在野外观察到了这一点。如果有关于此的一些规范或描述,那就太棒了。
编辑:好的,RFC明白地说:
如果使用安全协议传输引用页面,则客户端不应在(非安全)HTTP请求中包含Referer头字段。
因此,如果您从HTTPS页面转到HTTP链接,则不会发送引荐来源信息。
答案 2 :(得分:4)
来自:http://en.wikipedia.org/wiki/HTTP_referrer
引荐来源字段是可选部分 由...发送的HTTP请求 浏览器程序到Web服务器。
来自RFC 2616:
Referer [sic] request-header字段 允许客户端指定 服务器的好处,地址 (URI)从中获取的资源 获得了Request-URI( “引用者”,虽然标题 字段拼写错误。)
答案 3 :(得分:1)
如果您使用浏览器请求网页,您的浏览器将发送HTTP Referer标头以及请求。
答案 4 :(得分:1)
您的浏览器会针对每个页面请求传递referrer。
JavaScript似乎也可以访问它,但确实如此。
答案 5 :(得分:1)
是的,浏览器会在HTTP标头中发送上一页。这在HTTP / 1.1规范中定义:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.36
您的问题的答案是肯定的,因为浏览器发送了引用者。
答案 6 :(得分:1)
“引荐来源字段是浏览器程序向Web服务器发送的HTTP请求的可选部分。”
答案 7 :(得分:1)
当您点击链接时,浏览器会在请求中添加Referer
标头。它是part of HTTP。您可以阅读更多相关信息here。