SSL延迟有多大?

1. 基本概念

ssl 协议由网景公司(Netscape)设计,由此网络链接从 http 逐步走向更为安全的 https 加密链接模式。

HTTPs 链接和 HTTP 链接都建立在 TCP 协议之上,而三次握手是 TCP 协议实现的重要环节。

  • 三次握手(handshake)


    这里写图片描述

    • 客户端首先发送 SYN 数据包,
    • 然后服务器发送SYN+ACK数据包,
    • 最后客户端发送ACK数据包,

    接下来就可以发送内容(data)了。这三个数据包的发送过程,叫做 TCP 握手。

2. HTTP vs HTTPs

HTTPs 链接和 HTTP 链接都建立在 TCP 协议之上。HTTP 链接比较简单,使用三个握手数据包建立连接之后,就可以发送内容数据了。而 HTTPs 链接,它也采用 TCP 协议发送数据,所以它也需要上面的这三步握手过程。而且,在这三步结束以后,它还有一个 SSL 协议。

  • HTTP耗时 = TCP握手
  • HTTPs耗时 = TCP握手 + SSL握手

也即,为实现 ssl 协议所需的 ssl 握手是 https 相较 http 连接更为耗时的原因所在。

3. curl 验证

使用 linux 下的命令行工具 curl 进行验证:

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

TCP handshake: 0.293, SSL handshake: 0.494
  • -so:s:silent,关闭标准输出
  • time_connect/time_appconnect:分别表示 TCP 握手的耗时,SSL 握手的耗时;
posted on 2017-06-08 20:41  未雨愁眸  阅读(420)  评论(0编辑  收藏  举报