HTTPS请求阶段分析
请求阶段分析
一个完整、无任何缓存、未复用连接的 HTTPS 请求需要经过以下几个阶段:
- DNS 域名解析、
- TCP 握手、
- SSL 握手、
- 服务器处理、
- 内容传输。
一个 HTTPS 请求共需要 5 个 RTT = 1 RTT(域名解析)+ 1 RTT(TCP 握手)+ 2 RTT(SSL 握手)+ 1 RTT(HTTP 内容请求传输)
举个例子,说明接口延迟的计算和影响:假设北京到美国洛杉矶的 RTT 延迟为 190 毫秒,我们从北京访问美国洛杉矶的一个 HTTP 服务,整个交互过程时延计算是5*190+后端业务延时。其中,"5"代表的是 HTTPS 请求的 5 个环节,每个环节都需要一个 RTT 的时间。
因为网络延迟始终会受到物理环境的制约,无论使用什么技术、如何优化,950ms 的指标将会很难突破,所以我们的优化策略也是以减少请求环节、链路优化、降低 SSL 计算量为主