为什么你的API请求这么慢?可能是 HTTPS 的锅

时间:2026-05-30 22:17:15   阅读:28
接口响应时间只有 50ms,但用户端感觉像卡了 2 秒——这个差异往往出在传输层,不是后端性能。

TLS 握手的时间成本

每次 HTTPS 请求建立连接时,客户端和服务端要进行 TLS 握手。HTTP/1.1 需要 2 个 RTT(往返时间),如果用户在新加坡、服务器在美西,延迟 200ms,光握手就浪费 400ms。这还是在连接池已经有连接的情况下。 解决方案:开启 TLS 1.3,它把握手压缩到 1 个 RTT,而且支持 0-RTT 恢复——之前连过的客户端可以直接发数据,省掉一次往返。

OCSP 装订

浏览器请求一个网站时,需要向 CA 验证证书是否被吊销。这个 OCSP 请求增加了一次额外的 DNS 查询和 HTTP 请求。服务端配 OCSP Stapling,由服务器定期去 CA 拿到装订好的证书状态,客户端跳过这一步。 Nginx 配置加一行 ssl_stapling on 就行。

CDN 不只是加速静态资源

很多 API 也适合走 CDN。Cloudflare、阿里云 CDN 都支持 API 加速,节点就近响应 TLS 握手,大幅减少连接建立时间。动态内容可以通过 CDN 回源,静态内容直接缓存,一举两得。

连接复用

HTTP/1.1 默认 Keep-Alive,一个连接可以处理多个请求,不用重复建连。检查一下服务端的 keepalive_timeout 设置,别设太短。HTTP/2 更进一步,支持多路复用,一个连接处理多个并发请求,完全没有队头阻塞的问题。

上一篇:Chrome DevTools 里藏着的6个调试技巧

下一篇:正则表达式入门:20分钟学会最常用的10个模式