【问题标题】:Finding HTTP_REFERER empty/blank when using URL shortener site使用 URL 缩短站点时发现 HTTP_REFERER 为空/空白
【发布时间】:2010-09-12 04:52:40
【问题描述】:

我有一个客户正在尝试通过这些“URL 缩短”网站(tinyurl.com、bit.ly 和 x.co)来确定访问他的网站的流量指标,具体来说,并采取行动在那个交通...

我们会认为 HTTP_REFERER 变量会保存引用资源名称,即来自该服务的缩短 URL。相反,HTTP_REFERER 字段是空的,如果在某些浏览器中读取它实际上甚至不存在(我猜是 NULL?)。

这是一个尝试输入缩短 URL 的示例,该 URL 转到我的客户站点,页面名称为 x.php:

HTTP_CONNECTION:keep-alive HTTP_KEEP_ALIVE:115 HTTP_ACCEPT:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8,application/json HTTP_ACCEPT_CHARSET:ISO-8859-1,utf-8;q=0.7,*;q=0.7 HTTP_ACCEPT_ENCODING:gzip,deflate HTTP_ACCEPT_LANGUAGE:en-us,en;q=0.5 HTTP_COOKIE:ASPSESSIONDQADBDABT=HAEFPIOBONKMOIJFDGNHHEM HTTP_HOST:www.<myclientswebsite>.com HTTP_USER_AGENT:Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 (.NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729) 

为什么http://x.co 缩短的 URL 不会显示在标题信息中,或者我没有找到正确的位置?

我的客户最终希望将传入流量重定向到他网站内的适当资源和/或重定向到他拥有的其他网站。

更新:我查看了他的原始流量日志,除了 x.co 或 bit.ly 等我找不到特定的引荐来源网址等我没有看到“/”部分。我是否可以在他的 Web 服务器上更改他的 IIS6 设置,以便我们查看和利用他正在寻找的信息,或者我们只是因为 HTTP 重定向的设计而运气不佳?

【问题讨论】:

    标签: php http browser http-headers


    【解决方案1】:

    因为缩短服务使用响应 301302Location - 没有引用。您的浏览器没有通过它。

    【讨论】:

    • 你能想出什么办法来解决浏览器没有发送它或者我需要告诉客户忘记他想要实现的目标吗?
    • 浏览器(我测试过的)不发送标题。这是事实。然后你应该决定做什么;-)
    【解决方案2】:

    HTTP_REFERER 是一个可选的标头。在某些情况下,它们会被剥离(安全软件、代理等)。

    在 URL 缩短服务的情况下,它们可能会进行标头重定向,并且根本不包括 HTTP_REFERER。

    【讨论】:

    • "他们可能会进行标头重定向,并且根本不包含 HTTP_REFERER。" --- 你完全错了,是用户的浏览器发送了引用标头,而不是缩短服务。
    • @zerkms:你是说它可以检索这些信息,还是浏览器没有编码来这样做,这就是它的方式?
    • 我不知道他们是如何编码的,而且 - 我不记得有任何 http rfc 强制要求在 30 倍响应时不发送referer,我只是解释现代浏览器的行为。跨度>
    猜你喜欢
    • 1970-01-01
    • 2011-09-10
    • 1970-01-01
    • 2017-06-14
    • 2016-08-06
    • 1970-01-01
    • 2018-11-18
    • 2013-01-12
    • 1970-01-01
    相关资源
    最近更新 更多