根据W3C,HTTPS站点不应该将引荐者传递给HTTP站点:
如果使用安全协议传输引用页面,则客户端不应在(非安全)HTTP请求中包含Referer头字段。
Google是一个HTTPS网站,但我仍然在Google Analytics中看到我所有HTTP网站的推荐人信息。虽然Google会在q=
参数中隐藏关键字,但我仍然可以看到访问者来自Google。
根据规范,Google Traffic应该直接进入HTTP网站。我在这里缺少什么?
答案 0 :(得分:2)
有两种META可用于将引用者从HTTPS传递到HTTP。 Google的HTTPS服务器实现:
<meta name="referrer" content="origin">
谷歌
或
<meta name="referrer" content="origin-when-crossorigin">
YOUTUBE
答案 1 :(得分:1)
Google搜寻结果页面与您网站的链接并非简单链接。如果仔细观察,您会发现该链接在实际到达您的网站之前通过了javascript和重定向。
Google会通过测量有机搜索结果页面的点击次数以及传递推荐信息,以便营销人员可以将这些访问归结为Google搜索。
Google确实会考虑隐私,并且不会传递用户搜索的实际查询。这就是为什么你在Google中看不到关键字,而是说(not provided)
。
以前,当某些谷歌搜索是通过HTTP用来传递查询时,这种情况不再发生,因为现在100%的搜索都是通过HTTPS进行的。
所以回答你的问题:是的,规范要求浏览器在HTTPS上不传递引荐,所有浏览器都遵循这一规定,但谷歌使用一些自定义JS和重定向来传递引用。
在Google的情况下,重定向位于www.google.com/url
上以下是该页面上的代码供参考,代码已经过修改以便澄清:
<script>
window.googleJavaScriptRedirect=1
</script>
<META name="referrer" content="origin">
<script>
var m = {
navigateTo:function(b,a,d){
if(b!=a&&b.google){
if(b.google.r{
b.google.r=0;
b.location.href=d;
a.location.replace("about:blank");
}
} else {
a.location.replace(d);
}
}
};
m.navigateTo(
window.parent,
window,
"http://www.cutestpaw.com/articles/50-cute-puppies-make-your-girlfriend-smile/"
);
</script>
<noscript>
<META http-equiv="refresh" content="0;URL='http://www.cutestpaw.com/articles/50-cute-puppies-make-your-girlfriend-smile/'">
</noscript>
您可以看到它包含用于传递引荐信息的Meta name="referral"。 Origin实际上是传递给google.com/url请求的HTTP参数。