# ❓ 为什么通常在发送数据埋点请求的时候使用的是 1x1 像素的透明 gif 图片?

  • 能够完成整个 HTTP 请求+响应(尽管不需要响应内容)

  • 触发 GET 请求之后不需要获取和处理数据、服务器也不需要发送数据

  • 跨域友好

  • 执行过程无阻塞,只要 new Image 对象就好了,一般情况下也不需要 append 到 DOM 中,通过它的 onerror 和 onload 事件来检测发送状态。

  • 相比 XMLHttpRequest 对象发送 GET 请求,性能上更好

  • GIF 的最低合法体积最小(最小的 BMP 文件需要 74 个字节,PNG 需要 67 个字节,而合法的 GIF,只需要 43 个字节)

issuecomment-480650860

SegmentFault 上的回答

Web beacon

Using a Beacon Image for GitHub, Website and Email Analytics

为什么前端监控要用 GIF 打点