为之漫笔

HTTP/2比HTTP强在哪里?

为之漫笔 · 2017-05-04翻译 · 1118阅读 原文链接

本文的目的是通过比较告诉大家,为什么应该从HTTP迁移到HTTPS,以及为什么应该添加到HTTP/2的支持。在比较HTTP和HTTP/2之前,先看看什么是HTTP。

什么是HTTP

HTTP是在万维网上通信的一组规则。HTTP属于应用层协议,跑在TCP/IP层之上。用户通过浏览器请求网页时,HTTP负责处理请求并在Web服务器与客户端之间建立连接。

注意

  • HTTP是同步协议
  • 数据以纯文本形式通过HTTP发送。这不安全,使中间人攻击成为可能。
  • 多个TCP连接:意味着建立连接需要更多次往返。
  • HTTP是无状态协议,每个命令都独立执行,命令之间无关。

    使用HTTP(不安全)的站点 Not Secure

    什么是HTTPS

    HTTPS就是HTTP的安全(Secured)版。Web服务器与客户端之间的通信会通过TLS(Transport Layer Security)或SSL(Secure Socket Layer)加密。

    使用HTTPS(安全)的站点 Secure

    HTTP与HTTPS对比测试

    每次测试加载360个各不相同的图片,都不缓存(总共0.62 MB)。多次测试后,HTTPS加载速度比不安全的HTTP快37%。这是应该从HTTP迁移到HTTPS的又一个原因。

    结果 HTTP VS HTTPS

    注意

  • 安全连接。通过HTTPS传输的所有数据都是加密的。

  • 比不安全的HTTP加载更快。
  • Service WorkersGeo LocationCamera 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%。

    结果 HTTPS VS HTTP/2

    浏览器对HTTP/2的支持情况

    来源:caniuse.com

支持HTTP/2的CDN

有了HTTP/2,不使用雪碧图、压缩、拼接,也可以提升性能。然而,这不代表不应该使用这些技术。不过这已经清楚表明了我们从HTTP/1.1移动到HTTP/2的必要性。

感谢阅读。有问题请留言,没问题请分享 😃

相关文章