基本概念http:超文本传输协议http协议被用于在web浏览器和网站服务器之间传递信息,http协议以明文方式发送内容,不提供任何方式的数据加密,因此,http协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。https:是以安全为目标的http通道,简单讲是http的安全版,即http下加入ssl层,https的安全基础是ssl(ssl记录协议[ssl record protocol]),因此加密的详细内容就需要ssl。https协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。https和http的区别1. https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。2. http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。3. http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。4. http的连接很简单,是无状态的;5. https协议是由ssl+http协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。https最大的特点https最大的特点是安全, 在保护用户隐私,防止流量劫持方面发挥着非常关键的作用。主要有以下3点:内容加密。浏览器到百度服务器的内容都是以加密形式传输,中间者无法直接查看原始内容。身份认证。保证用户访问的是百度服务,即使被 dns 劫持到了第三方站点,也会提醒用户没有访问百度服务,有可能被劫持数据完整性。防止内容被第三方冒充或者篡改。https的缺点1、证书费用以及更新维护。2、https 降低一定用户访问速度(实际上优化好就不是缺点了)。3、https 消耗 cpu 资源,需要增加大量机器。https 网络访问过程http协议下,用户只需要完成 tcp 三次握手建立 tcp 连接就能够直接发送 http 请求获取应用层数据,此外在整个访问过程中也没有需要消耗计算资源的地方。https 的访问过程,相比 http 要复杂很多,在部分场景下,使用 https 访问有可能增加 7 个 rtt。三次握手建立 tcp 连接。耗时一个 rtt。使用 http 发起 get 请求,服务端返回 302 跳转到 https://www.baidu.com 。需要一个 rtt 以及 302 跳转延时。三次握手重新建立 tcp 连接。耗时一个 rtt。tls 完全握手阶段一。耗时至少一个 rtt。解析 ca 站点的 dns。耗时一个 rtt。三次握手建立 ca 站点的 tcp 连接。耗时一个 rtt。发起 ocsp 请求,获取响应。耗时一个 rtt。完全握手阶段二,耗时一个 rtt 及计算时间。完全握手结束后,浏览器和服务器之间进行应用层(也就是 http)数据传输。当然不是每个请求都需要增加 7 个 rtt 才能完成 https 首次请求交互。大概只有不到 0.01% 的请求才有可能需要经历上述步骤。https的性能优化主要优化两方面,访问速度和计算性能。https 访问速度优化设置hsts,服务端返回一个 hsts 的 http header,浏览器获取到 hsts 头部之后,在一段时间内,不管用户输入www.baidu.com还是http://www.baidu.com,都会默认将请求内部跳转成https://www.baidu.com。chrome, firefox, ie 都支持了 hsts。session resume,复用session可以减少 cpu 消耗,因为不需要进行非对称密钥交换的计算。可以提升访问速度,不需要进行完全握手阶段二,节省了一个 rtt 和计算耗时。复用有2种方式,session cache和session ticket。nginx设置ocsp stapling。ocsp 全称在线证书状态检查协议 (rfc6960),用来向 ca 站点查询证书状态,比如是否撤销。通常情况下,浏览器使用 ocsp 协议发起查询请求,ca 返回证书状态内容,然后浏览器接受证书是否可信的状态。这个过程非常消耗时间,因为 ca 站点有可能在国外,网络不稳定,rtt 也比较大。如果不需要查询则可节约时间。使用 spdy 或者 http2。spdy 最大的特性就是多路复用,能将多个 http 请求在同一个连接上一起发出去,不像目前的 http 协议一样,只能串行地逐个发送请求。pipeline 虽然支持多个请求一起发送,但是接收时依然得按照顺序接收,本质上无法解决并发的问题。http2支持多路复用,有同样的效果。false start。简单概括 false start 的原理就是在 clientkeyexchange 发出时将应用层数据一起发出来,能够节省一个 rtt。https 计算性能优化优先使用 ecc椭圆加密算术。使用最新版的 openssl。硬件加速方案。tls 远程代理计算