移动端 HTTPS 连接建立为何比 HTTP 慢
移动端 HTTPS 连接建立比 HTTP 慢是因为需要经历 TCP 三次握手和 TLS 握手,总共需要八个往返请求才能发送第一个内容请求。
移动端 HTTPS 连接建立为何比 HTTP 慢
移动端网页从输入网址到开始加载内容,中间需要经历多个网络步骤。当使用 HTTPS 协议时,浏览器需要先与服务器建立安全连接,这比普通的 HTTP 连接要消耗更多时间。资料指出,在建立安全连接后,浏览器才能发送第一个 HTTP GET 请求来获取 HTML 文件。
HTTPS 连接建立过程包含两个关键握手步骤。首先是 TCP 三次握手,用于在浏览器和服务器之间协商网络套接字连接的参数。其次是 TLS 握手,用于确定加密通信使用的密码、验证服务器身份并建立安全连接。这两个步骤都需要多次往返通信,增加了连接建立的时间成本。
移动网络环境下的延迟影响
移动网络环境会放大连接建立过程中的延迟问题。在移动网络上,每次 DNS 查找都需要从手机经过蜂窝塔到达权威 DNS 服务器。手机、蜂窝塔和名称服务器之间的距离会显著增加延迟。资料提到,DNS 查找必须为页面引用的每个唯一主机名执行一次,这可能会对性能产生问题。
移动设备上的网络连接通常比有线网络更不稳定。TCP 慢启动算法通过逐渐增加传输的数据量来确定最大网络带宽,并在高网络负载时减少传输数据量。这种机制虽然有助于平衡传输,但在移动网络中,由于距离和信号干扰,初始连接建立阶段可能会花费更长的时间。
连接建立的具体步骤与耗时
HTTPS 连接建立涉及多个往返请求。TCP 三次握手通常被称为 SYN、SYN-ACK、ACK,因为 TCP 需要传输三条消息来协商和启动计算机之间的 TCP 会话。这意味着在发送请求之前,浏览器和服务器之间已经来回发送了三条消息。
TLS 握手需要五个额外的往返请求才能发送内容请求。TLS 协商确定加密通信使用的密码、验证服务器并建立安全连接。资料指出,在经历八次往返服务器后,浏览器终于能够发送请求。这意味着在用户看到任何内容之前,已经发生了大量的网络通信。
如何验证移动端 HTTPS 连接耗时
可以使用浏览器开发者工具的 Network 面板来验证连接建立耗时。在移动设备或模拟器上打开网页,查看 Network 面板中的连接时间。重点关注 TLS 握手阶段的时间,以及 TCP 连接建立的时间。如果连接时间过长,可能需要检查网络环境或服务器配置。
另一种验证方法是使用网络抓包工具。在移动设备上抓取网络流量,分析 TLS 握手和 TCP 握手的详细过程。检查是否存在网络延迟或丢包情况。如果发现 TLS 握手时间过长,可能需要优化服务器配置或升级加密算法。
资料与延伸阅读
你可以通过以下原始资料核对文中概念,并继续深入阅读。