问题来源: 拼多多等 app,搜索请求地址是 t.gif,这个什么原理?

关键字: image beacon, pixel tracking

之前也有注意到诸如 Google Analysis / 百度统计 的服务都会产生后缀是gif的请求, 但没有深究历史背景, 借此机会尝试去了解下.

常见统计服务商的收集API

Google Analysis

通过访问 Twitter 首页, 发现最新版的已经不是 gif, 但返回 gif 类型, 大小是 35 字节: image

早期的 Google Analysis 也是 gif, 地址是 https://www.google-analytics.com/__utm.gif, 35 字节.

customer.io

访问 customer.io 首页, 地址带有 gif 后缀, 返回 gif 类型, 36 字节. image

友盟+

访问 友盟 首页, 地址带有 gif 后缀, 返回 gif 类型, 43 字节. image

百度统计

访问 Teambition 首页, 使用了百度统计, 地址带有 gif 后缀, 返回 gif 类型, 43 字节. image

微博

访问 微博 首页, 收集地址带有 gif 后缀, 返回 gif 类型, 35 字节 image

简单总结

目前大多数统计的请求地址是带有gif后缀的, 接口返回一个 1x1 尺寸的 gif 图片,大小 35/36/43 字节.

问题及解释

使用 gif 后缀的传统是哪来的?

最早的猜测是 Google Analysis.

为什么是图片? 为什么是 gif 而不是其他格式?

图片的优势:

  1. 不阻塞页面加载;
  2. 自动触发;
  3. 可以内嵌到邮件中(邮件不支持javascript; 邮件的阅读统计需求);
  4. 没有跨域问题.

gif 的优势:

  1. 1x1的尺寸够小(最小35字节);
  2. 出生早(gif:1987/1989, jpeg:1992, png: 1996);
  3. 浏览器支持更广泛Image format support

同样是 1x1 的尺寸, 为什么大小不一样?

35/36字节的gif: 是1x1像素的白色图片; 43字节的gif: 是1x1像素的透明图片;

参考资料