• QQ空间
  • 收藏

SSL延迟有多大?

薄荷女人网| 2018-12-25 阅读 29

据说,Netscape公司当年设计SSL协议的时候,有人提过,将互联网所有链接都变成HTTPs开头的加密链接。

这个建议没有得到采纳,原因之一是HTTPs链接比不加密的HTTP链接慢很多。(另一个原因好像是,HTTPs链接默认不能缓存。)

自从我知道这个掌故以后,脑袋中就有一个观念:HTTPs链接很慢。但是,它到底有多慢,我并没有一个精确的概念。直到今天我从一篇文章中,学到了测量HTTPs链接耗时的方法。

首先我解释一下,为什么HTTPs链接比较慢。

HTTPs链接和HTTP链接都建立在TCP协议之上。HTTP链接比较单纯,使用三个握手数据包建立连接之后,就可以发送内容数据了。

上图中,客户端首先发送SYN数据包,然后服务器发送SYN+ACK数据包,最后客户端发送ACK数据包,接下来就可以发送内容了。这三个数据包的发送过程,叫做TCP握手。

再来看HTTPs链接,它也采用TCP协议发送数据,所以它也需上面的这三步握手过程。而且,在这三步结束以后,它还有一个SSL握手。

总结一下,就是下面这两个式子。

HTTP耗时 = TCP握手

HTTPs耗时 = TCP握手 + SSL握手

所以,HTTPs肯定比HTTP耗时,这就叫SSL延迟。

命令行工具curl有一个w参数,可以用来测量TCP握手和SSL握手的具体耗时,以访问支付宝为例。

$ curl -w "TCP handshake: %{time_connect}, SSL handshake: %{time_appconnect}\n" -so /dev/null https://www.alipay.com TCP handshake: 0.022, SSL handshake: 0.064

上面命令中的w参数表示指定输出格式,time_connect变量表示TCP握手的耗时,time_appconnect变量表示SSL握手的耗时(更多变量请查看文档和实例),s参数和o参数用来关闭标准输出。

从运行结果可以看到,SSL握手的耗时(64毫秒)大概是TCP握手(22毫秒)的三倍。也就是说,在建立连接的阶段,HTTPs链接比HTTP链接长3倍的时间,具体数字取决于CPU的快慢和网络状况。

所以,如果是对安全性求不高的场合,为了提高网页性能,建议不采用保密强度很高的数字证书。一般场合下,1024位的证书已经足够了,2048位和4096位的证书将进一步延长SSL握手的耗时。

(完)

2018-12-06
微信电商 SEO高手的经验分享
做SEO不需要技术是扯淡,说全部靠技术的是混蛋 第一个小标题就很雷人有木有?表怪我说粗话,只怪现在误导新人的... <详情>
2018-12-13
微信电商 罗辑思维:“柳桃”就是这样成为了一枚病毒案例
东东导读:由联想佳沃、罗辑思维合作的柳桃推广项目曾在去年的营销界掀起一片涟漪,也成为本次评选中最终得分最高的一... <详情>
2018-12-10
微信电商 原猫扑网产品运营总监谈有关新媒体运营的十个感悟
东东导读:内容运营是一件需要持续坚持得工作,现在感觉有无数个公司都在做新媒体运营,好像不做就跟不上潮流似的。在... <详情>
2018-12-21
微信电商 一个五年移动互联网推广人自述心路历程:商务的高度和深度
第一部分:从业背景 本人2011年开始进入移动互联网,那时还在专注于自己的事业,公司主要开发iOS版本的AP... <详情>
2018-12-16
微信电商 滴滴、陌陌第一批种子用户究竟是怎么来的?
增哥导读:第一批种子用户的获取都是挺难的,不过总有些共同之处。找到自己的精准目标用户,不断地解决初期用户的麻烦... <详情>