译者:为之漫笔
本文的目的是通过比较告诉大家,为什么应该从HTTP迁移到HTTPS,以及为什么应该添加到HTTP/2的支持。在比较HTTP和HTTP/2之前,先看看什么是HTTP。
什么是HTTP
HTTP是在万维网上通信的一组规则。HTTP属于应用层协议,跑在TCP/IP层之上。用户通过浏览器请求网页时,HTTP负责处理请求并在Web服务器与客户端之间建立连接。
注意
- HTTP是同步协议。
- 数据以纯文本形式通过HTTP发送。这不安全,使中间人攻击成为可能。
- 多个TCP连接:意味着建立连接需要更多次往返。
- HTTP是无状态协议,每个命令都独立执行,命令之间无关。
使用HTTP(不安全)的站点
什么是HTTPS
HTTPS就是HTTP的安全(Secured)版。Web服务器与客户端之间的通信会通过TLS(Transport Layer Security)或SSL(Secure Socket Layer)加密。
使用HTTPS(安全)的站点
HTTP与HTTPS对比测试
每次测试加载360个各不相同的图片,都不缓存(总共0.62 MB)。多次测试后,HTTPS加载速度比不安全的HTTP快37%。这是应该从HTTP迁移到HTTPS的又一个原因。
结果
注意
- 安全连接。通过HTTPS传输的所有数据都是加密的。
- 比不安全的HTTP加载更快。
- Service Workers、Geo Location、Camera API等只在HTTPS下才得到支持。
HTTP/2
HTTP/2是HTTP的下一个版本。HTTP/2致力于解决HTTP/1.1的诸多问题。
注意
- 只有一个TCP连接:建立连接的往返次数更少。
- 二进制:服务器可以很容易地解析,而不需要从文本转换为二进制。
- 多路复用:可以同时进行多个请求(最多6-8)。
- 报头压缩:HTTP报头大小被压缩,因此减小了大小。
- 服务器推送:服务器可以向尚未请求的客户端发送资源。
- 请求优先级:每个请求都可以有优先级,以保证先请求重要资源。
HTTPS与HTTP/2对比测试
此测试与以前的测试类似,但环境支持HTTP/2。每次测试加载36个独特的、非缓存的图像(总共292 KB)。经过多次测试,HTTP/2的加载速度比HTTPS快80%。
结果
浏览器对HTTP/2的支持情况
来源:caniuse.com
支持HTTP/2的CDN
结论
有了HTTP/2,不使用雪碧图、压缩、拼接,也可以提升性能。然而,这不代表不应该使用这些技术。不过这已经清楚表明了我们从HTTP/1.1移动到HTTP/2的必要性。
感谢阅读。有问题请留言,没问题请分享 ?