javascript-Google.com和client1.google.com/generate_204

我只是在好奇地发现google.com的Firebug网络活动,因为我好奇地发现请求返回了“ 204 No Content”。

事实证明,“ 204 No Content”主要是为了允许进行输入操作而不会导致用户代理的活动文档视图发生更改,尽管任何新的或更新的元信息都应应用于用户代理活动中的当前文档 视图。” 随你。

我查看了JS源代码,看到这样请求“ generate_204”:

(new Image).src="http://clients1.google.com/generate_204"

完全没有变量声明/赋值。

我的第一个想法是,它被用来跟踪是否启用了Javascript。 但是无论如何还是从动态加载的外部JS文件中调用“((New Image).src ='...'”),所以这毫无意义。

任何人都对要点有任何想法?

更新

“ / generate_204”似乎可在许多Google服务/服务器上使用(例如maps.google.com/generate_204、maps.gstatic.com/generate_204等)。

您可以通过为您的网络应用可能使用的每个Google拥有的服务预取generate_204页面来利用此功能。 像这样:

window.onload = function(){
    var two_o_fours = [
        // google maps domain ...
        "http://maps.google.com/generate_204",

        // google maps images domains ... 
        "http://mt0.google.com/generate_204",
        "http://mt1.google.com/generate_204",
        "http://mt2.google.com/generate_204",
        "http://mt3.google.com/generate_204",

        // you can add your own 204 page for your subdomains too!
        "http://sub.domain.com/generate_204"
    ];
    for(var i = 0, l = two_o_fours.length; i < l; ++i){
        (new Image).src = two_o_fours[i];
    }
};
David Murdoch asked 2020-08-01T12:34:39Z
11个解决方案
34 votes

我在用Google搜寻generate_204时发现了这个旧线程,因为Android似乎使用它来确定无线局域网是打开的(接收到响应204),关闭的(完全没有响应)还是被阻止(存在重定向到强制门户)。 在这种情况下,会显示一条通知,要求登录到WiFi。enter image description here

Morphius answered 2020-08-01T12:35:21Z
25 votes

就像Snukker所说的那样,clients1.google.com是搜索建议的来源。 我的猜测是,他们会在需要前发出将client1.google.com强制放入您的DNS缓存的请求,这样您在第一个“真实”请求上的等待时间就会减少。

Google Chrome已经对页面上的所有链接执行了此操作,并且(我认为)在位置栏中键入地址时也是如此。 这似乎是一种使所有浏览器执行相同操作的方法。

Matthew Crumley answered 2020-08-01T12:35:00Z
17 votes

如果Chrome检测到SSL连接超时,则证书 错误或其他可能由俘虏引起的网络问题 门户网站(例如酒店的WiFi网络),Chrome会将 对[http://www.gstatic.com/generate_204]的无cookie请求,并检查 响应码。 如果该请求被重定向,Chrome将打开 假设目标是登录页面,则在新选项卡中重定向目标。 到强制门户检测页面的请求不会记录。

字体:Google Chrome浏览器隐私白皮书

tonhozi answered 2020-08-01T12:35:46Z
10 votes

Google正在使用它来检测设备是在线的还是强制门户的。

Chromium OS的连接管理器Shill会在服务转换到就绪状态时尝试检测强制门户中的服务。 通过尝试检索网页[http://clients3.google.com/generate_204。]来确定是进入强制门户还是在线,此众所周知的URL返回具有HTTP状态204的空页面。 如果由于某种原因未返回该网页,或者接收到的HTTP响应不是204,则shill将服务标记为处于门户状态。

以下是Google Chrome浏览器隐私白皮书中的相关说明:

如果Chrome检测到SSL连接超时,证书错误或其他可能由强制门户(例如酒店的WiFi网络)引起的网络问题,Chrome会向[http://www.gstatic .com / generate_204]并检查响应代码。 如果该请求被重定向,则Chrome将假设它是登录页面,并在新标签页中打开重定向目标。 到强制门户检测页面的请求不会记录。

更多信息:[http://www.chromium.org/chromium-os/chromiumos-design-docs/network-portal-detection]

Suresh answered 2020-08-01T12:36:25Z
5 votes

AJAX中有时会使用204个响应来跟踪点击和页面活动。 在这种情况下,在get请求中传递给服务器的唯一信息是cookie,而不是请求参数中的特定信息,因此这里似乎不是这种情况。

似乎client1.google.com是google搜索建议背后的服务器。 当您访问[http://www.google.com]时,cookie会传递给[http://clients1.google.com/generate_204。]也许这是为了在服务器上启动某种会话? 无论用途如何,我都怀疑这是非常标准的用途。

Snukker answered 2020-08-01T12:36:50Z
4 votes

鉴于Google大量地阻止垃圾邮件和抓取他们的搜索数据库,我相信这是跟踪机器人等工作的一部分。

一些简单的反机器人伪可能会这样。

On GET (google.*) Save RemoteEndPoint
{
    If RemoteEndPoint GETs (clients1.google.com/generate_204) Then
        Set botAlert_stage1 = false;
    Else
        Set botAlert_stage1 = true;
    End If
}

我还相信,最新的Google首页“主题”也是一种有助于反垃圾邮件/机器人活动的新工具。

**注意** ipv6.google.com也包含此措施。

只是我毫无根据的没有证明的两个2p。

divinci answered 2020-08-01T12:37:29Z
3 votes

本文档说明:

[HTTP://docs.礼拜.Purdue.额度/CGI/view content.CGI?article=1417&context=恶策突然&SEI-热敌人=1]

(搜索generate204)

相关部分:

在不同的对象中,一个javascript函数触发一个generate204请求,该请求发送到应该用于视频的视频服务器。 这将启动视频预取,它有两个主要目标:首先,它强制客户端执行视频服务器名称的DNS解析。 其次,它强制客户端打开与视频服务器的TCP连接。 两者都有助于加快视频下载阶段。

另外,generate204请求具有与实际视频下载请求完全相同的格式和选项,因此视频服务器最终会被警告客户端可能很快就会下载该视频。 请注意,该命令暗示视频服务器将响应204 No Content,并且到目前为止,没有下载视频内容。

motobói answered 2020-08-01T12:38:11Z
3 votes

许多应用程序访问此URL来确定它们是否具有仅通向强制门户的连接。

这个想法是,任何强制门户网站都认为这是一个“正常”网站,然后将您重定向到其门户网站,该网站的状态为200。如果应用程序尝试访问任何常规网站,那么它将面临完全无法预料的情况 回应,并可能在找出问题所在时遇到问题。 但是,使用此URL很容易:如果您的状态为200,则说明您处于囚禁门户之内,并且可以告诉您的用户对此采取某些措施(通常使用浏览器登录该门户,或者关闭WiFi并依靠 3G(如果他们正在使用电话)。 如果状态为204,则说明您已连接到Google,因此您的应用程序实际上已连接到互联网。

微软和苹果使用略有不同的方法。 它们都有一些返回状态非常特殊的短消息的URL,它们的状态为200,因此例如,可以访问“ captive.apple.com”并检查data =“ Success”的状态200,以代替访问Google url。 没有其他的。 如果您获得状态200而不是该数据的确切信息,那么您将再次进入强制门户。

gnasher729 answered 2020-08-01T12:38:42Z
2 votes

我找到了这篇博客文章,该文章解释说它是用来记录点击的。 没有Google的官方消息,它可能会被用于许多用途。

[HTTP://mark.KO李.吃/2009/03/how to-configure-Apache-to-return-啊-HTTP-204-no-content-佛如-Ajax.HTML]

digitalsanctum answered 2020-08-01T12:39:07Z
0 votes

生成器204可能正在动态加载搜索条件的建议。 正如我从负载测试脚本中看到的那样,每次用户在文本框中键入内容时,这似乎对每个服务器调用负责

Kranthi answered 2020-08-01T12:39:27Z
-1 votes

好吧,我已经看了好几次了,结果导致Google记录了引荐来源网址,这是他们第一次访问google.com之前的来源; 使用Google Chrome进行跟踪时,我有90%的猜测是它是“日志引荐来源网址”,也许是Google发布其浏览器使用标准列表时众所周知的User-Agent统计信息:

  • 请求网址:[http://clients1.google.se/generate_204]

  • 请求方法:GET

  • 状态码:204无内容

响应标题

  • 内容长度:0
  • 内容类型:text / html
  • 日期:2010年5月21日,星期五,格林尼治标准时间
  • 伺服器:GFE / 2.0

此处“ ^ Request Headers”下的“ Referer”显示了Google的统计数据,许多人来自Microsoft.com,还解析了“ Windows 7”一词,以帮助我在该会话的后续搜索中专注于Windows 7

//Steven

Steven answered 2020-08-01T12:40:31Z
translate from https://stackoverflow.com:/questions/1989214/google-com-and-clients1-google-com-generate-204