为什么建立 https 连接比建立直接 http 连接需要更长的时间?

为什么建立 https 连接比建立直接 http 连接需要更长的时间?

为什么安全 HTTP 连接(https)比典型的 HTTP(http)慢?

只是感兴趣了解而已。

谢谢。

答案1

要建立 TCP/IP 连接,客户端和服务器之间需要交换 3 个数据包。然后,连接才算建立,客户端可以提交其请求。

当在 TCP/IP 连接上添加 SSL 时,在连接被视为建立之前还必须进行一些额外的交互。

除非客户端和服务器(即同一网络)之间的延迟可以忽略不计,否则这种额外的延迟可能是建立 SSL 连接延迟的主要因素,因为它需要额外的往返来交换 SSL 握手数据,而不是计算密钥材料的 CPU 开销。

有关 TCP/IP 连接建立的更多信息

有关 SSL/TLS 握手的更多信息

答案2

简单来说:因为它对流量进行加密和解密,所以这需要双方(服务器和客户端)进行处理。

答案3

正如其他人提到的,所有传输都有加密和解密步骤。不过还有另外两个问题:

  • 当您第一次与服务器通信时处于协商阶段,在此阶段,服务器和浏览器协商加密过程的密钥,并且您的浏览器会对服务器证书执行一些检查(如果您使用客户端证书,它会检查您的证书)。
  • 事实上,HTTPS 连接上承载的任何内容(包括主页源代码、脚本、图像和样式表)都不应被浏览器缓存,因此每次需要时,浏览器都必须重新请求原本从缓存中获取的对象。

答案4

补充 pauska 的回答:

大多数 Web 服务器平台可以添加硬件/软件来提高服务器上 SSL 的性能。产品就是这样的。

相关内容