只是想了解他们为什么不使用REST API.
在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服务.)
您可以在不支持javascript的浏览器中使用__utm.gif,使用
你如何在电子邮件中发出REST请求?