iOS 电商网站HTTPS实践之路——性能优化篇

通过分析TLS握手过程的细节我们会发现HTTPS比HTTP会增加多个RTT网络传输时间,既增加了服务端开销,又拖慢了客户端响应时间。因此,性能优化是必不可少的工作。很多文章都集中在服务端的性能优化上,但对于电商行业而言,大部分的用户流量源于应用程序,因此客户端的性能优化配合服务端才能使收益最大化。

1.HTTPS带来的负担

1.1增加的传输延时
1.2服务端额外开销

2.服务端性能优化

2.1 HSTS的合理使用
2.2会话恢复的合理使用
2.3 Ocs Stapling的合理使用
2.4 TLS协议的合理配置
2.5 False Start的合理使用
2.6 SNI功能的合理使用
2.7 HTTP 2.0的合理使用
2.8 SSL硬件加速卡合理使用

3.客户端性能优化

3.1移动端HTTP2加速代理
3.2 HttpsDns解决DNS攻击劫持

1.HTTPS带来的负担凡事都有两面性。

1.1 增加的传输延时使用HTTPS传输增加的开销不仅仅是两次TLS握手的过程。优化性能首先要知己知彼。了解性能损耗在哪里,才能有针对性的进行部署。对于用户来说,使用HTTP请求,首次请求时只要和服务端TCP三次握手建立连接,便可以开始应用数据传输了。
1.用户习惯于使用HTTP请求你的网站。要保护用户的安全,首先要让用户强制三百○一分之三百○二到HTTPS。这次跳转至少增加1个RTT的延时;
2. 302跳转后要再次TCP建连,增加1个RTT的延时;
3. 开始两阶段TLS握手,细节如下图所示,增加至少两个人RTT的延时。这里写图片描述- Client Hello:客户端开始新的握手,并将自身支持的功能提供给服务端; - Server Hello:服务端选择连接参数; - Certificate :服务端发送证书链; - ServerKeyExchange :服务端发送公钥(公钥)等生成主密钥(预主秘密Hey hey)的额外信息给客户端; - ServerHelloDone:服务端通知完成协商过程; - ClientKeyExchange:客户端发送加密后的主密钥给服务端- [ChangeChiperSpec]:客户端如果要切换加密方式通知服务端-完成:客户端完成-[ChangeChiperSpec]:服务端如果要切换加密方式通知客户端
-完成:服务端完成
4.另外客户端如果第一次获取服务端的证书链信息,还需要通过Oscp来验证证书的吊销状态,又需要至少1个RTT延时。
5.最终,开始应用层数据的传输。
1.2服务端额外开销TLS握手过程中密钥交换和加密对CPU都会产生额外的计算开销。选择不同的算法(身份验证算法,密钥交换算法,加密算法)开销不同。比如,2048位RSA作为密钥交换算法对CPU压力就会很大,而ECDHE_RSA(椭圆曲线密钥交换)开销就小的多,RSA可以仍保留用于身份验证。当然,不管选择多优化的算法,开销是避免不了的,如下图所示。这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值