HTTPS 慢?先把 TCP、TLS、TTFB 分开看

2026-05-20

别把三类延迟混成一个数字,否则永远找不到瓶颈。

一次请求的三段耗时

一次 HTTPS 请求至少包含三段:TCP 建连(一次往返)、TLS 握手(一到两次往返)、以及服务端处理时间。三段里任何一段慢,体感都是"网站慢"。

用 curl -w 可以把它们拆开打印。打印模板里各自取 time_connect、time_appconnect、time_starttransfer、time_total 这几个变量。

各段慢分别意味着什么

time_connect 大:网络路径问题,或者目标服务器在大洋彼岸。

time_appconnect 与 time_connect 的差值大:TLS 握手慢,可能是证书链太长、或者服务端在做耗时操作。

time_starttransfer 与 time_appconnect 的差值大:这是服务端处理时间,问题在后端。

一个容易忽略的优化

TLS 握手需要额外往返,启用会话复用能省掉大部分重复握手。再进一步是开启 TLSv1.3,它在多数场景下能把握手压到一次往返。