为什么https连接比build立直连http连接要花费更长时间?

为什么Secured HTTP Connection(https)比典型的HTTP(http)慢?

只是有兴趣只知道。

谢谢。

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

当SSL被添加到TCP / IP连接之上时,在连接被build立之前还有几个额外的交互。

除非客户端和服务器(读取,同一个networking)之间的等待时间可以忽略不计,否则由于额外的交换SSL握手数据的往返时间而不是计算密钥材料的CPU开销,是延迟build立SSL连接的主要因素。

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

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

简而言之:因为它encryption和解密stream量,这需要双方(服务器和客户端)的处理。

正如其他人所说,所有传输都有encryption和解密步骤。 还有两个问题:

  • 第一次与服务器对话时的协商阶段,服务器和浏览器协商encryption过程的密钥,浏览器对服务器证书执行一些检查(如果使用的是客户端证书,则检查您的证书)。
  • 事实上HTTPS连接上没有内容(包括主要页面源代码,脚本,图像和样式表)应该被浏览器caching,所以它需要重新请求对象,否则每当需要caching时它就会从caching中获取对象。

杰夫·莫泽刚刚发表了一篇很好的文章,解释了来龙去脉,握手等。

http://www.moserware.com/2009/06/first-few-milliseconds-of-https.html

要添加到pauska的答案:

大多数Web服务器平台都可以添加硬件/软件来提高服务器上SSL的性能。 这个产品做到这一点。

因为encryption内容需要一点时间,并且encryption通常会增加内容的大小。

我也build立安全连接滞后…我看在铬高级参数。 向下滚动到https / ssl并删除所有相对于comodo的证书(在第二个或第三个标签中find它们,不要记住),从来没有得到build立安全连接再次希望帮助