跟踪Cookie是如何工作的?

5
我们正在研究常见的网络追踪软件如Google Analytics是如何工作的。
我们注意到,来自网络各地的许多跟踪JavaScript代码会在访问者系统上创建多个cookie,通常有三个cookie-一个在当天结束时过期,一个在一周结束时过期,一个在月底过期。
我们团队一直在讨论为什么这种做法很普遍,我们一直在苦苦思索为什么要这样做。
我们唯一能想到的是性能:这样您可以计算出访问者每天、每周或每月的重复情况,而不必一直对OLTP数据库进行重型查询。但我们可以想象出其他方法使其工作。
以这种方式创建跟踪cookie的优点是什么,您认为它们是如何被他人使用的?
3个回答

5
他们可能是使用cookie的方式来确定访问该域名的频率。如果您访问该网站并且它注意到您仍然有当天过期的cookie,则在访问频率方面这是重要的。如果您只有每周和每月的cookie,那么很明显您至少已经一天没有访问该网站,并且上次访问是在一周内。

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


是的,这就是我们想的。这一定是为了提高性能。 - RibaldEddie

3
非常有趣的问题。我认为这是解决酒店问题的方法。让我们从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时,这是明显的性能优势。

1

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

因此,你应该明确地进行权衡...如果你更关心用户的延迟而不是服务器数据库的CPU使用率,那么只使用一个cookie;如果你更关心服务器的CPU使用率而不是用户的延迟,那么使用3个cookie的方法。

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


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