云伴侣-云伴侣是管理云服务器、云主机最简单、最省心的方式.

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1846|回复: 0

SSL延迟究竟有多大?

[复制链接]
发表于 2014-9-24 22:51:25 | 显示全部楼层 |阅读模式
  据说,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握手的具体耗时,以访问支付宝为例。
  1. $ curl -w "TCP handshake: %{time_connect}, SSL handshake: %{time_appconnect}\n" -so /dev/null https://www.alipay.com
  2. TCP handshake: 0.022, SSL handshake: 0.064
复制代码
  上面命令中的w参数表示指定输出格式,timeconnect变量表示TCP握手的耗时,timeappconnect变量表示SSL握手的耗时(更多变量请查看文档实例),s参数和o参数用来关闭标准输出。
  从运行结果可以看到,SSL握手的耗时(64毫秒)大概是TCP握手(22毫秒)的三倍。也就是说,在建立连接的阶段,HTTPs链接比HTTP链接要长3倍的时间,具体数字取决于CPU的快慢。
  文章出处,略修改。

评分

参与人数 1娱乐豆 +5 收起 理由
046569 + 5 转载辛苦

查看全部评分

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|云伴侣 ( 粤ICP备14022677号-1 )| 亚丁云旗下站点

GMT+8, 2024-3-29 17:41

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表