当前位置:  开发笔记 > 编程语言 > 正文

为什么Google Analytics使用__utm.gif?

如何解决《为什么GoogleAnalytics使用__utm.gif?》经验,为你挑选了2个好方法。

只是想了解他们为什么不使用REST API.



1> doug..:

在REST中,客户端向服务器发起对资源的请求; 服务器处理这些请求并返回适当的响应.

utm.gif不参与服务器到客户端的数据传输,而是它参与了其他方向移动数据.

当然,REST有HTTP方法供客户端与服务器通信(GET和POST),实际上,Google Analytics会指示客户端的浏览器通过GET请求将所有分析数据发送到GA服务器.更确切地说,GET请求由请求URL和请求标头(例如,Referer和User-Agent Headers)组成.

所有GA数据 - 每个项目 - 都被组装并打包到请求URL的查询字符串中("?"之后的所有内容).但是为了使数据从客户端(创建它)到GA服务器(记录和聚合),必须有HTTP请求,所以ga.js(已下载的谷歌分析脚本,除非它是由客户端缓存作为页面加载时调用的函数的结果)指示客户端汇集所有分析数据 - 例如,cookie,位置栏,请求标题等 - 将其连接成单个字符串并将其作为查询字符串附加到URL(http://www.google-analytics.com/__utm.gif?),并成为请求URL.

当然,没有资源就没有HTTP请求; 所以资源是从服务器请求的客户端?它不需要来自服务器的任何东西,而是想要将信息发送到服务器.因此,客户端请求的实际服务器资源纯粹是预先设置的 - 客户端甚至不需要该资源,它仅被要求遵守传输协议运营商.因此,使该资源尽可能小和不引人注意是有意义的,这就是为什么它是gif格式的1 x 1透明像素.它是可能的最小尺寸和最不密集的图像格式(字节/像素); 我认为它有点超过30个字节.其他常见格式(例如,jpeg,png,tiff)中的1​​ x 1图像较大.

这种在客户端和服务器之间传输数据的一般方案已经存在; 这可能是更好的方法,但这是我所知道的唯一方式(满足托管分析服务强加的约束).

(Google Analytics确实有两个API--" 数据导出"和"管理 " - 它们都是RESTful Web服务.)


@doug,为什么服务器不能简单地返回一个1字节的字符串而不是35字节的gif?
是的,非常详细的答案,但它并没有真正回答问题的核心:为什么一个图像,而不是JSON对象,纯文本,或只是一个'204 No Content`响应?我很确定答案与支持各种协议(http/https)和浏览器的跨域请求有关,这些协议最近才开始对这类传输应用相同的安全规则.图像没有应用于AJAX(XMLHTTP)请求的许多限制.
那么他们只是使用gif来遵守协议?他们通过QS发送所有数据,不需要请求标题,所以我仍然没有得到它:( PS-感谢您的详细解释

2> Neil McGuiga..:

您可以在不支持javascript的浏览器中使用__utm.gif,使用

你如何在电子邮件中发出REST请求?

推荐阅读
贴进你的心聆听你的世界
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有