谷歌分析如何将数据保存到数据库中

4

我正在为我的学校作业开发一个类似Google Analytics的项目。我主要有两个问题:

1)Google准确地何时将数据存储到数据库中?它是否使用XHR和一些服务器端脚本语言将其存储到数据库中,还是有一种使用纯JavaScript进行操作的方法?

2)如何从Javascript中获取用户的IP地址?Google Analytics是如何做的?

感谢您所有的帮助。

Pranz


2
我猜知道答案的人是不被允许分享的。 - brettkelly
1
好的,Google Analytics JS在这里,如果你想挖掘的话:http://www.google-analytics.com/urchin.js 当然,这并不能回答服务器端的问题。 - icktoofay
1
毫无阻碍让你自己查看JS并加以解决。发送给用户执行的任何脚本都没有机密性(虽然通常不值得反向工程混淆的代码,但自动格式化程序确实可以让您跟随和调试它)。 - Nicholas Wilson
3个回答

6
Google Analytics的JS代码不会直接与服务器通信 - 它会向页面添加一个图像,并将所有要发送回来的信息附加为URL参数在图像上 - 查看运行Google Analytics的页面并使用Firebug Net面板,您会看到发生了什么。因此,JS代码无需计算IP地址 - 它将作为图像请求的一部分传递到GA记录服务器中。
最好的官方描述是在Google BigTable论文中 - 有几段描述了幕后发生的事情的提示。
还值得关注记录和报告活动的数据库结构this Stack Overflow question
问候

哦...这就是他们如何避免跨站点脚本问题的方法吗? - Pranz
2
是的,一切都在托管页面的上下文中发生,因此所有的cookies都是第一方的,并且不存在跨站点脚本。 - Jamie

2

1) 是的。用户端的JavaScript向服务器发送请求,服务器使用自己的应用程序进行处理(您可以使用PHP或任何您的服务器设置调用的语言)。

2) 您可能会发现使用 $_SERVER['REMOTE_ADDR'] 最简单地获取IP地址。


0
(1)Google Analytics 通过包含所谓的“页面标签”来实现。这被称为 Google Analytics 跟踪代码(GATC),是用户添加到其网站每个页面上的隐藏 JavaScript 代码片段。该代码充当信标,收集私人访客数据并将其发送回 Google 数据收集服务器进行处理。数据处理每小时进行一次,尽管它可能比实时晚 3-4 小时。不确定他们在服务器端使用什么,可能是 Java。
(2)您需要使用服务器端包含才能使其正常工作 - 如下所示。/
/ This part gets the IP
var ip = '<!--#echo var="REMOTE_ADDR"-->';

// This part is for an alert box
alert("Your IP address is "+ip);

// This part is for the status bar
window.defaultStatus = "Your IP address is "+ip;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接