「页面明明能打开,就是慢,到底慢在哪一步?」

网页加载慢原因,先别急着换服务器。一次打开拆成五段,最长的那一段就指向那一层。下面这张表是先分叉用的,三支都在表里。

最长的一段 指向哪一层 先做什么
dns、tcp、tls(之一最长,或合计过半)连接还没建立换解析、换节点、查证书链
ttfb服务端在算看进程、数据库、外部接口
下载数据在传看体积、请求数、线路丢包

三段都慢或某一段卡住,是连接没建立起来

<figure><img src="https://image.bt.cn/20261113/b48097e4193570db7145dd38a98a3d36.svg" alt="一次打开拆成 dns、tcp、tls、ttfb、下载,各占多少" loading="lazy" width="1200" /><figcaption>先看谁最长,再看它占几成</figcaption></figure>

dns 慢是问路慢,tcp 慢是握手慢,tls 慢是协商慢。这三段走完,还没有一个字节的业务请求发出去。

先看单段:哪一段最长就先看它。三段之一最长、或者三段合计占总耗时一半以上,就先动这三段,后面的先别看。一半是经验线。

dns 慢,换一家解析再跑。tcp 慢,换一个节点或一条线路。tls 慢,先看证书链是否完整、有没有多余跳转。

有一点容易算错:测速端自己解不出或自己超时,也会显示成 dns 段慢。这一路跟站点无关,换一台机器复测就能排除。

ttfb 长,是请求到了、服务器还没回话

ttfb 从请求发完算到收到第一个字节。这一段长,说明连接已经建立,是后端没在时限内给出响应。

判据是 ttfb 超过一秒,同时下载段很短。一秒是经验线。两条同时成立,再去翻进程、慢查询、外部接口。

反过来,ttfb 很短、总时长还是长,就不该在后端上找。

用宝塔拨测的网站测速跑一次,五段耗时是分开列的,先看最长那一段,再看它占几成。

下载段长,是已经开始传、但传得慢

下载段从第一个字节算到最后一个字节。这一段长,说明数据在动,是体积或带宽的事。

判据是下载段占一半以上、ttfb 正常。一半也是经验线。两条同时成立,先看页面总字节数和单个最大文件。

字节数不大还慢,再数请求数。请求太多,前面几段要各走一遍。

有一处我还没确认:同一份报告里,五段之和与总耗时差的那一点,各家算不算在「其他」里,写法不一样。我手上没有统一定义,所以对不上时,我会以最长那一段的占比为准。