gpt4 book ai didi

https - Google 如何将引用从 HTTPS 传递到 HTTP?

转载 作者:行者123 更新时间:2023-12-03 15:36:03 24 4
gpt4 key购买 nike

根据 W3C HTTPS 站点不应将引用者传递给 HTTP 站点:

Clients SHOULD NOT include a Referer header field in a (non-secure) HTTP request if the referring page was transferred with a secure protocol.



Google 是一个 HTTPS 站点,但我仍然在 Google Analytics 中看到我所有 HTTP 站点的引荐来源信息。而谷歌将关键字隐藏在 q= 中参数,我仍然可以看到访问者来自谷歌。

根据规范,谷歌流量应该直接进入 HTTP 站点。我在这里缺少什么?

最佳答案

从 Google 结果页面到您网站的链接不是简单的链接。如果您仔细观察,您会注意到该链接在实际到达您的网站之前通过了 javascript 和重定向。

谷歌这样做是为了衡量他们最终的自然结果页面的点击率,并传递推荐,以便营销人员可以将这些访问归因于谷歌搜索。

Google 确实考虑了隐私,并且不会传递用户搜索的实际查询。这就是为什么您在 Google 中看不到关键字,而是显示 (not provided) .

以前,当某些 Google 搜索通过 HTTP 进行搜索时,Google 过去常常将查询传递给其他人,但现在不会再发生这种情况,因为现在 100% 的搜索都是通过 HTTPS 进行的。

所以回答你的问题:是的,规范要求浏览器在 HTTPS 上不传递引用,所有浏览器都遵循这一点,但谷歌使用一些自定义 JS 和重定向来传递引用。

更新

在谷歌的情况下,重定向位于 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 参数。

关于https - Google 如何将引用从 HTTPS 传递到 HTTP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24894142/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com