| 测量口径 | 下载 | 上传 | 说明 |
|---|---|---|---|
| 服务端计时 权威 | — | — | 服务器自己记录发/收了多少字节、用了多久。VPN、代理、缓存都伪造不了。 |
| 浏览器计时 | — | — | 网页用 fetch 流式读取逐字节累加。被本地代理缓冲时会虚高。 |
| Resource Timing | — | — | 浏览器内核记录的真实传输字节数与耗时,用来交叉验证。 |
| 偏差(浏览器 ÷ 服务端) | — | — | 接近 1.00 说明测量干净。 |
装在本机的 VPN / 代理 / 加速器会先把数据整块收到自己那里,再从本地环回口(127.0.0.1)交给浏览器。 浏览器看到的是"从本地进程收数据",速度接近内存拷贝,于是把真实用了 8 秒的传输记成 4 秒甚至更短,读数就翻倍了。 安卓上的 VPN(走 VpnService 的那类客户端)是同一个道理。
对付办法就是本页的做法:让服务器自己计时。服务器只知道自己往 socket 里写完这 30MB 用了多久, 本机代理怎么缓冲都改变不了这个数。所以上表里"服务端计时"那一行才是你该看的数。
另外本页已经做了:数据用 /dev/urandom 生成(不可压缩,中间层压缩占不到便宜)、
每次请求带随机参数且声明 no-store(杜绝缓存命中)、并发连接分别计时后按墙钟聚合。