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

Nat*_*ona 3 security ssl http encryption https

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

只是有兴趣知道而已。

谢谢。

Dav*_*ney 20

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

当在 TCP/IP 连接之上添加 SSL 时,在考虑建立连接之前必须发生一些额外的交互。

除非客户端和服务器之间的延迟可以忽略不计(读取,同一网络),那么这个额外的延迟很可能是由于交换 SSL 握手数据的额外往返,而不是计算密钥材料的 CPU 开销,是延迟建立 SSL 连接的主要因素。

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

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


pau*_*ska 8

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


Dav*_*ett 7

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

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