代码之家  ›  专栏  ›  技术社区  ›  NoozNooz42

从技术上讲,参考(r)er是如何工作的?

  •  9
  • NoozNooz42  · 技术社区  · 14 年前

    我不明白:网络服务器和跟踪程序,如谷歌分析,如何能够跟踪推荐?

    它是HTTP的一部分吗?

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

    显然,每次单击网页上的链接时,原始网页都会随请求一起传递。

    这背后的确切机制是什么?有什么规定吗?

    奖金(完全相关的)问题:如果,在我自己的网站(由Tomcat提供服务),我把一个链接到另一个网站,另一个网站看到我的网站作为“推荐人”没有我做任何特别的Tomcat?

    8 回复  |  直到 14 年前
        1
  •  12
  •   Chris    14 年前

    因为这是一个客户机/请求头,所以服务器是不相关的,是的,单击您自己服务器上托管的页面上的链接将导致该页面的URL被发送到另一个站点的服务器,尽管您的服务器可能不一定可以从该另一个站点访问,这取决于您的网络配置。

        2
  •  8
  •   Jaanus    14 年前

    关于浏览器是如何发送的,还有一个细节需要补充:HTTPS稍微改变了行为。我不知道它是否在任何规范中,但是如果你从HTTPS跳转到HTTP,并且如果你停留在同一个域或者去不同的域,那么有时引用者不会被发送。我不知道确切的规则,但我在野外观察过。如果有一些规格或描述,这将是伟大的。

    如果引用页是使用安全协议传输的,则客户端不应在(非安全的)HTTP请求中包含Referer头字段。

    所以,如果您从HTTPS页面转到HTTP链接,则不会发送referer信息。

        3
  •  4
  •   Artelius    14 年前

    发件人: http://en.wikipedia.org/wiki/HTTP_referrer

    的HTTP请求 浏览器程序到web服务器。

    来自RFC 2616:

    允许客户端指定 服务器的优点,地址 (URI)的资源 已获取请求URI( “推荐人”,尽管标题

        4
  •  1
  •   S P    14 年前

    如果您使用浏览器请求网页,您的浏览器将随请求一起发送HTTP Referer头。

        5
  •  1
  •   Matt Mitchell    14 年前

    JavaScript也能访问这一点似乎很不寻常,但确实如此。

        6
  •  1
  •   minimalis    14 年前

    是的,浏览器发送HTTP头中的上一页。这在HTTP/1.1规范中有定义:

    http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.36

    你的问题的答案是肯定的,因为浏览器会发送referer。

        7
  •  1
  •   Maxim Gershkovich    14 年前

    “referer字段是浏览器程序发送到web服务器的HTTP请求的可选部分。”

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

        8
  •  1
  •   Tomas Markauskas    14 年前

    单击链接时,浏览器会添加 Referer 请求的标头。它是 part of HTTP . 你可以多看看 here .