如何提升网页加载速度和性能,先记住一个数:五段。dns、tcp、tls、ttfb、下载,一段对应一种改法。

段 能改什么 改完看什么
dns解析商、ttl解析段是否变短
tcp入口线路、节点分组后是否还慢
tls证书链(协议版本别乱降)握手段是否变短
ttfb缓存、接口首字节段是否变短
下载请求数、体积下载段是否变短

五段里每一段,都对应一种改法

先跑一条命令,把五个数拿到手:

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

五个数是累计值,段耗时要相减。最长的那段,才值得投入。其余四段先记着。

前三段能改的只有入口,不是代码

dns、tcp、tls 都发生在请求到达服务器之前。

dns 能改解析商与 ttl,改完看解析段有没有降。

tcp 能改线路与节点,改完按地区分组看是否还慢。

用宝塔拨测的网站测速跑同一批节点,分组一开就看得清。

tls 能改证书链与协议版本,先数证书张数,一张就是缺中间证书。

这三段改代码没有用。改的是入口,不是程序。

首字节能改的是缓存与接口

这一段是服务器在处理,改法最多。

先开缓存:静态资源、页面片段、接口结果,三层各看一次。

哪一层没开,先补哪一层。

再拆接口:把页面拆成几个请求分别测,只改最长那一个。

改完一处测一次,别同时动数据库和模板。

同时动两处,说不清是谁起的作用。

下载段能改的是请求数与体积

这一段跟服务器无关,改的是页面自己。

先减请求数:合并能合并的、去掉不用的、把 404 的重试停掉。

再压体积:图片、字体、脚本,按体积从大到小排。

顺序别反,先减数量再压体积,收益更稳。

反过来做,往往白忙。

改前改后各看一次分组结果,比只看总分可靠。

改完必须同组对照,否则等于没改

同一组节点、同一时段、同一条 url,改前改后各测三次。

三次都降,才算改对;只降一次,先记着。

同时改两处,下一次测速说明不了是谁起的作用。这一点最常被忽略。

我现在的取舍是:一段一段改,每段都要有自己的对照,宁可慢一点,也不要一次全上。