WeTest导读
自从去年QQ空间移动端页面开始切换到HTTPS之后,页面性能遇到了比较大的挑战,HTTPS对页面访问速度带来了比较大的影响,所以我们通过实践总结了一些能够提升HTTPS页面访问速度的方法,这些数据都是我们和STGW的同事反复实验、多次分析所得到的,希望能够减少大家对于全站启用HTTPS的顾虑。我们的目的是,在不影响用户体验的情况下,竭尽全力保护用户的信息安全!
页面在切到HTTPS之前,iOS的访问速度约为1795ms,切到HTTPS之后,iOS的访问速度直接飙到2630ms,我的天呐,上涨了900ms,接近50%,吓得我赶紧把入口又切回了HTTP。之后,便开始踏上了提升HTTPS访问速度的道路。(文章里的数据以iOS为例,访问速度指的是页面html开始请求到页面js执行完毕的耗时)。先简单以图示总结下我们优化的结论:
使用SPDY协议是我们优化的第一步,SPDY(speedy)是Google很早就提出的协议,通过多路复用、请求优先级以及HTTP报头压缩,来提升页面的访问速度。但是公司貌似没有一个统一的平台支持SPDY,在寻求了TEG小伙伴的帮助之后,他们首次支持了SPDY。SPDY在iOS的兼容性比较好,iOS 8.0以上的safari和webview都支持,覆盖了Qzone 85%以上的iOS用户。所以决定开启HTTPS+SPDY试试效果。开启SPDY之后的页面访问速度提升了370ms,已经非常不错了。(在SPDY的兼容性上,iOS大部分都支持了,而安卓tbs内核支持SPDY的版本也正在灰度当中,全量之后预计也能覆盖80%的Qzone用户。)
根据第一次SPDY的尝试,HTTPS的访问速度有了300多毫秒的提升,但跟HTTP相比差距还是有400ms的差距,分析了一下,这400ms的差距主要是来自于SSL握手的耗时,根据SPDY协议,每个域名建立一个TCP连接,各自要进行一次SSL握手,每次耗时约200ms,页面一共有两个关键域名,所以HTTPS+SPDY一共比HTTP慢了400ms。根据这个分析结果,我们也有了进一步的优化方向,那就是减少SSL的耗时。
延伸阅读
- ssh框架 2016-09-30
- 阿里移动安全 [无线安全]玩转无线电——不安全的蓝牙锁 2017-07-26
- 消息队列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 论文笔记【图片目标分割】 2017-07-26
- 词向量-LRWE模型-更好地识别反义词同义词 2017-07-26
- 从栈不平衡问题 理解 calling convention 2017-07-26
- php imagemagick 处理 图片剪切、压缩、合并、插入文本、背景色透明 2017-07-26
- Swift实现JSON转Model - HandyJSON使用讲解 2017-07-26
- 阿里移动安全 Android端恶意锁屏勒索应用分析 2017-07-26
- 集合结合数据结构来看看(二) 2017-07-26