HTTPS 访问速度优化方案

1、HTTPS 访问速度优化

 1.1、Tcp fast open(简称TFO)

     HTTPS与HTTP都是通过TCP协议进行传输的,即需要通过三次握手建立通讯连接,TFO的思路就是在一个RTT的时间内将应用层的数据跟syn包同时发送出去,节省请求次数。遗憾的是,TFO需要高版本内核,Linux3.7以后支持TFO,目前Windows暂不支持TFO。

 2.2、HTTP Strict Transport Security (简称HSTS)

  HSTS诞生之前,采取的方案:将用户HTTP请求302跳转到HTTPS,因为这种跳转方式是由浏览器触发的,服务器无法控制,存在如下风险:

       1)不安全,302跳转暴露了用户的访问站点,容易被中间者劫持;

        2)降低访问速度,302跳转不仅需要一个RTT,而且浏览器执行跳转也需要执行时间;

  为了规避这种风险,HSTS就诞生了,其原理:服务端返回一个HSTS的http header,浏览器获取到HSTS的头部后,在一段时间内,无论输入www.baidu.com还是http://www.baidu.com,都会跳转到https://www.baidu.com。

2.3、Session resume (即“复用session”)

  复用session的好处:

  1)减少CPU消耗,因为不需要进行非对称密钥交换的计算。

        2)提升访问速度,不需要进行完全握手阶段二,节省了一个RTT和计算时耗。

  TLS协议目前提供两种方式实现session resume:

  1、Session cache

  Session cache实现原理就是使用客户端中的session id查询服务端的session cache,如果服务端有对应的缓存,则直接使用已有的session信息提早完成握手。

  session cache两个缺点:

  1)需要消耗服务端内存来存储session内容。

  2)目前开源软件如nginx,apache只支持单机多进程间共享缓存,不支持多机间分布式缓存。

  session cache优点:

  1)session id 是TLS协议的标准字段,市面上的浏览器全部都支持session cache。

  2、Session ticket

       session ticket优点:

    1)不需要服务端消耗大量资源来存储session内容。

  session ticket 缺点:

  1)session ticket只是TLS协议的一个扩展特性,目前的支持率不是很广泛,只有60%左右。

  2)session ticket需要维护一个全局的key来加解密,需要考虑KEY的安全性和部署效率。

  

 

      

 

posted on 2017-09-11 11:22  學の夢  阅读(311)  评论(0编辑  收藏  举报

导航