为什么安全 HTTP 连接(https)比典型的 HTTP(http)慢?
只是感兴趣了解而已。
谢谢。
答案1
要建立 TCP/IP 连接,客户端和服务器之间需要交换 3 个数据包。然后,连接才算建立,客户端可以提交其请求。
当在 TCP/IP 连接上添加 SSL 时,在连接被视为建立之前还必须进行一些额外的交互。
除非客户端和服务器(即同一网络)之间的延迟可以忽略不计,否则这种额外的延迟可能是建立 SSL 连接延迟的主要因素,因为它需要额外的往返来交换 SSL 握手数据,而不是计算密钥材料的 CPU 开销。
答案2
简单来说:因为它对流量进行加密和解密,所以这需要双方(服务器和客户端)进行处理。
答案3
正如其他人提到的,所有传输都有加密和解密步骤。不过还有另外两个问题:
- 当您第一次与服务器通信时处于协商阶段,在此阶段,服务器和浏览器协商加密过程的密钥,并且您的浏览器会对服务器证书执行一些检查(如果您使用客户端证书,它会检查您的证书)。
- 事实上,HTTPS 连接上承载的任何内容(包括主页源代码、脚本、图像和样式表)都不应被浏览器缓存,因此每次需要时,浏览器都必须重新请求原本从缓存中获取的对象。
答案4
补充 pauska 的回答:
大多数 Web 服务器平台可以添加硬件/软件来提高服务器上 SSL 的性能。这产品就是这样的。