跟踪cookies是如何工作的?

跟踪cookies是如何工作的?,cookies,Cookies,我们正试图弄清楚常见的网络跟踪软件是如何工作的,比如谷歌分析 我们注意到,许多来自web的跟踪Javascript代码在访问者的系统上创建了多个cookie,通常是三个cookie——一个在一天结束时过期,一个在一周结束时过期,另一个在月底过期 我们的团队一直在争论为什么这种情况很普遍,我们一直在绞尽脑汁想弄清楚为什么会有人这样做 我们唯一能想到的是性能:通过这种方式,您可以计算访问者是否每天、每周或每月重复访问,而无需一直对OLTP数据库进行大量查询。但无论如何,我们都可以想出办法让它发挥作用

我们正试图弄清楚常见的网络跟踪软件是如何工作的,比如谷歌分析

我们注意到,许多来自web的跟踪Javascript代码在访问者的系统上创建了多个cookie,通常是三个cookie——一个在一天结束时过期,一个在一周结束时过期,另一个在月底过期

我们的团队一直在争论为什么这种情况很普遍,我们一直在绞尽脑汁想弄清楚为什么会有人这样做

我们唯一能想到的是性能:通过这种方式,您可以计算访问者是否每天、每周或每月重复访问,而无需一直对OLTP数据库进行大量查询。但无论如何,我们都可以想出办法让它发挥作用


以这种方式创建跟踪cookie有什么好处?您认为其他人是如何使用它们的?

他们可能以这种方式使用cookie来确定访问域的频率。如果您访问了该网站,并且它注意到您仍然有到期日cookie,那么就您的访问频率而言,这是非常重要的。如果你所拥有的只是每周和每月一次,那么很明显,你至少有一天没有访问过该网站,而且是在一周内


没有规则说这是唯一的方法。可以使用单个cookie进行跟踪,并在服务器上存储统计信息

非常有趣的问题。我认为这是解决问题的办法。让我们从DB查询的角度看一下。如果向用户发送一个cookie(到期日为一年),则站点的每日访问次数如下:

SELECT COUNT(DISTINCT CookieId) FROM Visits 
WHERE VisitDate = '2009-01-01' AND SiteId = 548
使用多cookie系统,您必须只存储每个站点每天发布的cookie数量,并在每次发送新cookie时增加该数量:

SELECT NoOfVisits FROM Visits 
WHERE VisitDate = '2009-01-01' AND SiteId = 548

当每年发布数亿个cookie时,这是一个明显的性能优势。

每天、每周和每月使用3个cookie意味着客户端在每次请求时向您发送3个cookie,从网络带宽和延迟的角度来看,这显然是不好的

所以,你应该有一个平衡的行为。。。如果您更关心数据库中的用户延迟而不是服务器cpu使用情况,请仅使用一个cookie;如果您更关心服务器cpu使用情况而不是用户延迟情况,请使用3 cookie方法


真正的解决方案是混合:只使用一个cookie,然后在每天结束时执行第一个查询,并将结果存储在单独的表或列中,这样您的统计界面只需查询单独的结果。

是的,这就是我们的想法。这一定只是为了表现。