了解 HTTP/2 的特色与 HTTP/1.1 的差异

2019-06-26

img

期待已久的 Hypertext Transfer Protocol Version 2 (HTTP/2) 终于在 2015 年 2 月 28 日定稿罗,也有 RFC 标准文件(RFC7540)了。

到底 HTTP/2 与原本的 1.1 有什么不同呢?我们来简单导览一下。

API 不用修改

HTTP/2 的多数 headers 与 1.1 是一样的,这表示 HTTP/2 可以完美的向下相容 1.1,代码无需做太大修改。也因此目前多数主流浏览器皆已支持 HTTP/2 协议。

建立在 SPDY 的基础上

几年前 Google 曾发布了令大家眼睛为之一亮的 SPDY 协议,标榜能加速 Web 的载入速度,并让网站上的多重档案可以并发下载。SPDY因为具备优异的网页传输及处理效能,因此后来从众多HTTP/2提案版本中脱颖而出,最终成为HTTP/2标准草案的原型。其竞争对手包含微软的 HTTP Speed+Mobility 等等协议。

HTTP/2的许多关键功能也都来自于SPDY,最大的改变就是加入一个多工(Multiplexing)的功能,可以允许浏览器在同时间内对多个服务器发送请求,并采用更高效率的标头压缩技术,整体而言,HTTP/2让用户端能以较少的连接数从服务器端取得资料,大幅增加网络传输速度。

服务器推送

HTTP/2 的一项新特色是加上了服务器推送功能,服务器可以主动推送内容到浏览器上。这增加了许多特别的新应用,例如可以在浏览器尚未发出请求前,预先推送 CSS 或页面 Layout 到浏览器上,增加之后的页面载入速度。

标头压缩与编码

HEAD 在传输的时候,有蛮多重复或冗余的资讯,这些资讯可藉由 Haffman 演算法压缩 HEAD 来增加传输速度。

流程下载控制与优先级

藉由控制下载流程的优先级,可以让 HTTP/2 的传输过程中,将最重要的内容优先下载,避免大量资讯堵在一起。

不强制采用加密传输

相较于 SPDY 强制要采用 https 协议,HTTP/2 并未强制传输要加密,不过在 HTTP/2 协议下,将更容易实现 TLS 传输加密。

如何使用 HTTP/2

基本上,主流浏览器大多已经支持。不过您可以在自己的服务器上加装 HTTP/2 模组来支持一些新的 HTTP/2 特性,例如 NodeJS 就有 node-http2 模组可以安装,详细的支持清单请看 HTTP/2 Implemention。

结语

对大多数的使用者来说,HTTP/2 的影响力不是那么的大,因为浏览器很快就支持了,也不会有任何浏览网站上的影响。但对于工程师而言,就有很多眉眉角角要注意。例如前端过去常常依靠 CSS sprites 与 Assets 合并来优化页面载入速度,也许未来的影响就没有那么大。后端则要考虑是否压缩 HEAD 或采用 TLS 等等。整体而言,对网络世界依旧是好事,毕竟从 1.1 版推出以来已经 16 年没有更新了,是时候迈向新时代的网络协议了。

  • 上一篇:让网站看起来更有高等质感的重要元素:照片
  • 下一篇:网页设计流程中,需要注意下面这些细节要求
  • 新闻中心
    网站改版不要盲目(网站改版:合…

    本文将探讨如何在网站改版过程中避免盲目行动,通过合理规划和有序实施来解决企业面临的问题和挑战。

    如何制作适应不同手机尺寸的网…

    同样的内容,要在大小迥异的手机屏幕上,都呈现出满意的效果,并不是一件容易的事。 于是,网页设计师不得不…

    使用者体验对网页设计影响比较…

    网页设计不只是单纯华丽的界面,使用者体验也很重要 网页设计不是单纯把界面设计的很华丽,代码写一写就可以…

    三种网页开发语言的不同之处

    一、网页开发大势所趋随着wifi的全面普及应用,现在的互联网已经可以称为移动互联网,大家不仅可以在电脑上…

    客户评价