外链点击没有 referrer 信息?!

最近经常盯着访问日志,有一次一边 “tail -f” 日志,一边在 Google Reader 中点击了一下自己的一个日志(此处“日志”指 blog post)链接,发现新增的一行日志竟然没有 referrer 信息!

我的浏览器并没有做任何隐藏 referrer 的特殊配置,所以这事儿我纳闷了好多天—— Google 是怎么做到的?即使可以做到,有什么必要隐藏 referrer 呢?

今天晚上动用了一大堆工具——Firebug, Fiddler, Eventbug, 研究了半天,我想 Google 一定是在用 JavaScript 完成这样的 trick.

后来突然想明白了,我的 Google Reader 一直是使用 https 连接的(避免意想不到的 connection reset),这不是 Google 做的,而是浏览器的默认行为。这么做很有必要,保护用户的隐私。把 https 换成 http 再点击,发现请求头中确实加入了 referrer 字段。据我所知,SearchStatus 这个扩展在遇到 https 页面的时候也是不会向外作任何查询的。

根据我做的山寨测试,IE, Firefox, Opera 都是这么做的,很好。微软还有一篇 support article 说这个事,里面提到:

many secure (HTTPS) Web servers store secure information such as credit-card data in the URL

我想现在应该很少有网站这么做了,不过 url 里面还是很容易找到涉及隐私的信息。隐藏 referrer 虽然给做 web analytics 的人带来了干扰,仍然是非常必要的。

在解除这个困惑的过程中,看到几年前就有人发现在 AdWords 中点击广告链接测试的时候,没有 referrer header,很奇怪,这几年内也没有人给他正确的答案。我刚刚给了他一个 comment,希望可以解惑……

这大概也可以解释为什么我们看到自己网站统计中没多少从 Google Reader 过来的流量吧(至少我的是这样)——因为大家都得 “s”.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload CAPTCHA.