2010-06-18 51 views
8

我不明白:Google Analytics等网络服务器和跟踪器如何跟踪引荐?参考(r)er如何在技术上工作?

它是HTTP的一部分吗?

这是浏览器的某些(未)指定行为吗?

显然,每次点击网页上的链接时,原始网页都会沿请求传递。

这背后的确切机制是什么?它是由一些规范指定的吗?

我已经阅读了一些文档,并且使用了我自己的Tomcat服务器和我自己的Google Analytics帐户,但我不明白“魔术”是如何发生的。

奖金(完全相关)问题:如果在我自己的网站上(由Tomcat提供服务),我把一个链接指向另一个网站,另一个网站是否将我的网站视为“引用者”,而我没有在Tomcat ?

+0

@Marcel Korpel:现在这是一个伟大的编辑,我希望人们可以给+选票编辑:) – NoozNooz42 2010-06-18 00:55:50

+0

沃尔沃,23分钟和三对我的问题upvotes,我没有想到(显然这是一个相对未知的部分HTTP规范给一些像我一样:)!给大家+1(几乎同时回答所有人) – NoozNooz42 2010-06-18 00:56:43

+0

哈哈,谢谢,NP;它基本上只是右键点击Firefox中所有晃动的红色下划线文字。 ;) – 2010-06-18 01:07:33

回答

10

Referer(拼写错误)是一个HTTP标头。这是所有主流HTTP客户端都支持的标准头文件(尽管某些代理服务器和防火墙可以配置为剥离或破坏它)。点击链接时,浏览器会发送一个HTTP请求,其中包含请求的页面和发现链接的页面等。

由于这是一个客户端/请求标头,服务器是无关紧要的,是的,点击托管在您自己服务器上的页面上的链接会导致该页面的URL被发送到其他站点的服务器,尽管您的服务器可能不一定可以从其他站点访问,具体取决于您的网络配置。

+0

值得一提的是,嵌入在页面中的元素将会在嵌入父页面的情况下发送头文件。 – Sam152 2010-06-18 00:58:23

1

如果您使用浏览器请求网页,浏览器将发送HTTP Referer标头和请求。

1

您的浏览器将每个页面请求传递给引用者。

JavaScript也可以访问它,但它确实很不寻常。

1

当你点击一个链接在浏览器上增加了一个Referer头的请求。它是part of HTTP。你可以阅读更多关于here

4

来自:http://en.wikipedia.org/wiki/HTTP_referrer

该引用字段是由 浏览器程序发送到Web服务器的HTTP请求的可选部分 。

从RFC 2616:

引荐[原文如此]请求头字段 允许客户端指定,为 服务器的益处,该资源的地址 (URI),从该 Request-URI中获得(在 “引荐”,虽然头 字段被拼错。)

7

一个细节添加到什么已经有人说过浏览器如何发送它:HTTPS稍微改变了行为。我不知道它是否符合任何规范,但是如果您从HTTPS跳转到HTTP,并且如果您保持在同一个域中或转到其他域,那么有时不会发送引用链接。我不知道确切的规则,但我在野外观察到了这一点。如果有关于此的一些规范或描述,那将会很棒。

编辑:确定,所述RFC说清楚:

客户不应该包含在(非安全)的HTTP请求一个Referer标头字段,如果引用页用安全协议传送。

因此,如果您从HTTPS页面转到HTTP链接,则不会发送引荐信息。

+0

很棒,这比我问的还多,非常有趣,+1 :) – NoozNooz42 2010-06-18 00:58:49