HTTP/2有哪些值得期待的特性

本贴最后更新于 3921 天前,其中的信息可能已经时移世异

随着HTTP/2工作组的工作接近尾声以及新标准的实现开始出现,工作组主席Mark Nottingham写了一篇博客对新协议中9件值得期待的事情发表了看法:

  1. 使用与HTTP相同的API。就像Mark提到的:“要想让HTTP/2成功,就必须让它能在现有的Web中正常工作。因此我们所做的努 力是让现有的HTTP更好地工作,而不是去改变这个协议。”尽管也许有机制能让你优化一些新功能,但一般情况下不会有新的方法、header和状态码。
  2. 更廉价的请求。“HTTP/2使用多路技术,允许多个消息在一个连接上同时交差,因此一个大的响应(或者一个需要消耗服务器很长时间的响应)并不会阻止其它的响应。此外,它增加了头压缩(header compression),因此即使非常小的请求,其请求和响应的header都只会占用很小比例的带宽。这对于移动平台来说,是非常重要的。因为太大的请求header,再加上页面所需的大量资源经过几个来回后,很可能导致页面加载失败。”
  3. 新协议对网络和服务提供了更友好的设计。“HTTP/2将使用更少的连接,因此服务器和网络的负载都将减少。这对于越来越拥挤的网络来说 具有非常重要的意义。HTTP/1采用多连接的方式实现并行数据传输,加剧了网络拥挤的问题。”HTTP/2对每台主机只需一个单独连接,而且只要可能, 应尽量将多个网站合并到一台主机上。
  4. HTTP/2引入了“服务端推(server push)”的概念,它允许服务端在客户端需要数据之前就主动地将数据发送到客户端缓存中,从而提高性能。当然,在某些场景下,客户端可能并不希望这么做,因此HTTP/2也允许客户端拒绝。
  5. 当客户端(浏览器)改变主意,不再需要某个请求的响应时,HTTP/1的客户端只能关闭连接,而新协议则提供了更好的解决办法。“HTTP/2增加了RST_STREAM frame,允许客户端改变主意。当浏览器进行页面跳转或者用户取消下载时,它可以防止建立新连接,避免浪费所有带宽。”
  6. HTTP/2提供更多的加密支持,Mark早前的文章说明了其优缺点
  7. 如果你喜欢那些可以监听和人工解析HTTP请求和响应的功能,例如使用telnet连接服务器,那么你要做好这些功能不再可用的准备。 HTTP/1是基于文本的协议而HTTP/2是基于二进制的。“尽管二进制协议的解析具有更小的开销,以及更小的网络消耗,但这个巨大变化的真正原因是二 进制协议更简单,因此更少错误,这是它的优点。”Mark就此进行了讨论,结果表明确实如此。例如,如何界定文本,HTTP/1的严重缺陷之一是脆弱的安 全性。“HTTP/1的文本特性也导致了一些安全问题。因为不同的实现对于如何解析一条消息有着不同的决定,因此恶意团体能够以某种的方式入侵(例如,通 过response splitting attack)”
  8. 别期望HTTP/2能够奇迹般地提升服务端或客户端的性能。“关于新协议,更准确的看法是,它清除了一些制约性能的重要障碍。只有当客户 端和服务端都学会了如何以及何时使用它的先进特性,性能才会开始逐渐提升。”正如Mark指出的,当今绝大部分网站是基于HTTP/1开发的,都不可避免 地受其限制。只有经过时间推移,当它们经过重新配置后,才能发挥HTTP2所提供的先进特性。“此外,HTTP/2的网络友好特性的缺点是可能导致TCP 拥塞控制变得更加突出。因为浏览器对每台主机只建立一个连接,初始窗口和丢包将会更加明显。”
  9. HTTP/2并不是发展的终点,团队已经在考虑后续的发展。“现在人们非常期待HTTP/2正式发布,因此一些高级(和实验性)的特性并 没有加入到此版本中。例如推送TLS认证和DNS条目到客户端,两者都能够提升性能。如果实验顺利的话,也许HTTP/3会包含这些。当然,HTTP/3 也可能是个解决所有目前未发现的问题的版本。但到目前为止,信心正在不断地增长。无论是社区发布的SPDY的体验,还是HTTP/2的各种实现都表明 HTTP/2已经接近完成了。”

以上这些就是Mark对于即将到来的HTTP/2的精彩和准确的概览。你觉得这些功能怎么样?哪些会让你有些担心?当它成为主流,你开始使用时,哪些又会让你觉得很兴奋?

上文转自:http://www.infoq.com/cn/news/2014/02/http-2

  • HTTP
    75 引用 • 128 回帖 • 1 关注
  • HTML

    HTML5 是 HTML 下一个的主要修订版本,现在仍处于发展阶段。广义论及 HTML5 时,实际指的是包括 HTML、CSS 和 JavaScript 在内的一套技术组合。

    107 引用 • 295 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • someone

    这个也好难,膜拜一下。求回访,求指点。

Vanessa
我们终此一生,就是要摆脱他人的期待,找到真正的自己。

推荐标签 标签

  • WebComponents

    Web Components 是 W3C 定义的标准,它给了前端开发者扩展浏览器标签的能力,可以方便地定制可复用组件,更好的进行模块化开发,解放了前端开发者的生产力。

    1 引用
  • C++

    C++ 是在 C 语言的基础上开发的一种通用编程语言,应用广泛。C++ 支持多种编程范式,面向对象编程、泛型编程和过程化编程。

    107 引用 • 153 回帖
  • wolai

    我来 wolai:不仅仅是未来的云端笔记!

    2 引用 • 14 回帖
  • Openfire

    Openfire 是开源的、基于可拓展通讯和表示协议 (XMPP)、采用 Java 编程语言开发的实时协作服务器。Openfire 的效率很高,单台服务器可支持上万并发用户。

    6 引用 • 7 回帖 • 94 关注
  • RIP

    愿逝者安息!

    8 引用 • 92 回帖 • 351 关注
  • 京东

    京东是中国最大的自营式电商企业,2015 年第一季度在中国自营式 B2C 电商市场的占有率为 56.3%。2014 年 5 月,京东在美国纳斯达克证券交易所正式挂牌上市(股票代码:JD),是中国第一个成功赴美上市的大型综合型电商平台,与腾讯、百度等中国互联网巨头共同跻身全球前十大互联网公司排行榜。

    14 引用 • 102 回帖 • 376 关注
  • 机器学习

    机器学习(Machine Learning)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。

    83 引用 • 37 回帖 • 1 关注
  • 面试

    面试造航母,上班拧螺丝。多面试,少加班。

    325 引用 • 1395 回帖
  • TGIF

    Thank God It's Friday! 感谢老天,总算到星期五啦!

    287 引用 • 4484 回帖 • 669 关注
  • V2EX

    V2EX 是创意工作者们的社区。这里目前汇聚了超过 400,000 名主要来自互联网行业、游戏行业和媒体行业的创意工作者。V2EX 希望能够成为创意工作者们的生活和事业的一部分。

    17 引用 • 236 回帖 • 327 关注
  • GAE

    Google App Engine(GAE)是 Google 管理的数据中心中用于 WEB 应用程序的开发和托管的平台。2008 年 4 月 发布第一个测试版本。目前支持 Python、Java 和 Go 开发部署。全球已有数十万的开发者在其上开发了众多的应用。

    14 引用 • 42 回帖 • 764 关注
  • 学习

    “梦想从学习开始,事业从实践起步” —— 习近平

    169 引用 • 506 回帖
  • SOHO

    为成为自由职业者在家办公而努力吧!

    7 引用 • 55 回帖 • 19 关注
  • JRebel

    JRebel 是一款 Java 虚拟机插件,它使得 Java 程序员能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响。

    26 引用 • 78 回帖 • 664 关注
  • 酷鸟浏览器

    安全 · 稳定 · 快速
    为跨境从业人员提供专业的跨境浏览器

    3 引用 • 59 回帖 • 26 关注
  • 区块链

    区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法 。

    91 引用 • 751 回帖 • 2 关注
  • 职场

    找到自己的位置,萌新烦恼少。

    127 引用 • 1705 回帖 • 1 关注
  • Gitea

    Gitea 是一个开源社区驱动的轻量级代码托管解决方案,后端采用 Go 编写,采用 MIT 许可证。

    4 引用 • 16 回帖 • 5 关注
  • Unity

    Unity 是由 Unity Technologies 开发的一个让开发者可以轻松创建诸如 2D、3D 多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

    25 引用 • 7 回帖 • 173 关注
  • 前端

    前端技术一般分为前端设计和前端开发,前端设计可以理解为网站的视觉设计,前端开发则是网站的前台代码实现,包括 HTML、CSS 以及 JavaScript 等。

    247 引用 • 1348 回帖
  • JavaScript

    JavaScript 一种动态类型、弱类型、基于原型的直译式脚本语言,内置支持类型。它的解释器被称为 JavaScript 引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在 HTML 网页上使用,用来给 HTML 网页增加动态功能。

    729 引用 • 1327 回帖
  • SEO

    发布对别人有帮助的原创内容是最好的 SEO 方式。

    35 引用 • 200 回帖 • 22 关注
  • 房星科技

    房星网,我们不和没有钱的程序员谈理想,我们要让程序员又有理想又有钱。我们有雄厚的房地产行业线下资源,遍布昆明全城的 100 家门店、四千地产经纪人是我们坚实的后盾。

    6 引用 • 141 回帖 • 585 关注
  • 以太坊

    以太坊(Ethereum)并不是一个机构,而是一款能够在区块链上实现智能合约、开源的底层系统。以太坊是一个平台和一种编程语言 Solidity,使开发人员能够建立和发布下一代去中心化应用。 以太坊可以用来编程、分散、担保和交易任何事物:投票、域名、金融交易所、众筹、公司管理、合同和知识产权等等。

    34 引用 • 367 回帖
  • MySQL

    MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是最流行的关系型数据库管理系统之一。

    690 引用 • 535 回帖
  • Sym

    Sym 是一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)系统平台。

    下一代的社区系统,为未来而构建

    524 引用 • 4601 回帖 • 700 关注
  • SendCloud

    SendCloud 由搜狐武汉研发中心孵化的项目,是致力于为开发者提供高质量的触发邮件服务的云端邮件发送平台,为开发者提供便利的 API 接口来调用服务,让邮件准确迅速到达用户收件箱并获得强大的追踪数据。

    2 引用 • 8 回帖 • 483 关注