提高网页加载速度,最常见的做法是先压图片。可压图只影响最后一段。

一次请求分五段:dns、tcp、tls、ttfb、下载。四个常见说法,各自只对其中一段有效。

说法 只对哪一段有效 该先看什么
压图片下载下载段是不是最长
加带宽下载前四段是否已经短
上 CDNtcp / tls、就近分发是否只有少部分地区慢
感觉快了全部有没有同组对照

「先把图片压一遍,肯定能快」

压图对下载段有效。下载段不是最长那段,压了也白压。

这是最常见的一步白干。

判据:跑一次五段,看下载是不是最长。

下载最长:压图、减请求,方向对。改完看下载段有没有降。

下载很短、前三段长:压图压到极限也没用。

先跑一条命令:

`` curl -o /dev/null -s -w 'dns=%{time_namelookup} conn=%{time_connect} tls=%{time_appconnect} ttfb=%{time_starttransfer} total=%{time_total}\n' https://你的域名 ``

五个数是累计值,段耗时要相减。

「买更大带宽,页面就快了」

带宽同样只作用在下载段。它不加快服务端计算。

前四段长的时候,带宽再大,请求还在路上排队。

判据:四段都短、只有下载长,才轮到带宽。

这一类更该先减请求数,再谈带宽。

请求数降下来,下载段跟着降,钱也省了。

加带宽是最后一步,不是第一步。

「上 CDN 就一定比现在快」

CDN 改的是 tcp 和 tls 这两段,以及就近分发。它不改页面体积。

全国都慢的时候,上 CDN 收益最大。

只有一两个省慢的时候,先查那一条链路。

用宝塔拨测的网站测速跑多地区节点,分组一开就能看出来。

判据:按地区分组,看慢的是不是集中在一片。

集中一片:那条链路的事,改 CDN 配置没用。

分散各地:才轮到 CDN 和缓存。顺序别反。

「改完感觉快了,就是改对了」

感觉会被时段、缓存、设备状态影响。三个人看同一页,感受都可能不同。

判据只有一个:同一组节点、同一时段、同一条 url,改前改后各测三次。

三次都降,才算改对。只降一次,先记着。三次全不一样,说明基线不稳。

同时改两处,下一次测速说明不了是谁起的作用。

反过来,如果有人先压了图片、又换了 CDN,最后说「快了一倍」,这个结论其实站不住——两处一起动,谁起的作用说不清。