写点什么

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

  • 2014-02-08
  • 本文字数:1711 字

    阅读完需:约 6 分钟

随着 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 的精彩和准确的概览。你觉得这些功能怎么样?哪些会让你有些担心?当它成为主流,你开始使用时,哪些又会让你觉得很兴奋?

查看英文原文: What to Expect From HTTP/2


感谢张龙对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014-02-08 04:236456

评论

发布
暂无评论
发现更多内容

听GPT 讲Rust源代码--compiler(33)

fliter

小游戏选型(二):第三方社交小游戏厂家对比,即构/声网/融云/云信等

音视频开发_AIZ

游戏开发 音视频开发 小游戏 小游戏开发 直播间

2023 IoTDB Summit:Dr. Julian Feinauer《Apache IoTDB 在德国工业和关键基础设施中的应用》

Apache IoTDB

车内语音识别技术:智能驾驶的核心要素

数据堂

幻兽帕鲁来啦!京东云召唤你一键开服,快来私服联机

京东科技开发者

车内语音识别数据在智能驾驶中的价值与应用

数据堂

EMQ 发布MQTT over QUIC 白皮书:下一代车联网消息传输标准协议

新消费日报

海外云手机三大优势

Ogcloud

云手机 海外云手机 云手机海外版 国外云手机

MQTT over QUIC 白皮书:下一代车联网消息传输标准协议

EMQ映云科技

车联网 mqtt QUIC QUIC协议 mqtt broker

小游戏选型(一):游戏化设计助力直播间互动和营收

音视频开发_AIZ

音视频开发 小游戏 小游戏开发 小游戏运营 直播间

万界星空科技注塑行业MES解决方案

万界星空科技

mes 万界星空科技 注塑MES 注塑行业

EOS系统合约总体介绍

BSN研习社

区块链 EOS

听GPT 讲Rust源代码--compiler(34)

fliter

爆火《幻兽帕鲁》被指用AI缝合宝可梦,开发者自曝传奇经历:是人类的奇迹

Openlab_cosmoplat

车内语音识别技术:重塑智能驾驶的未来

数据堂

8个可替代Visio的绘图软件推荐!每一款都堪称神器。

彭宏豪95

效率工具 流程图 在线白板 绘图软件 Visio

Argo CD 可观测性最佳实践

观测云

ArgoCD

左耳听风 - 技术领导力「读书打卡 day 17」

Java 工程师蔡姬

读书笔记 程序员 个人成长 职业发展 技术领导力

车内语音识别数据在智能驾驶中的应用与挑战

数据堂

史上最全知识图谱建模实践(上):本体结构与语义解耦

可信AI进展

深度学习 nlp 知识图谱 NLP 大模型

车内语音识别技术在智能驾驶中的应用与前景

数据堂

车内语音识别技术:智能驾驶的革新之源

数据堂

您有一份OpenHarmony开发者论坛2023年度总结,请查收~

OpenHarmony开发者

OpenHarmony

智慧工地建设与低代码开发: 优化建筑行业的效率与安全

不在线第一只蜗牛

低代码 项目开发 智慧工地 数智转型

对接50+快递商,快递鸟电子面单API助力商家多平台批量打单发货

快递鸟

快递物流 快递

软件供应链安全继续强化:SBOM清单基座规范SBOMit启动制订

sender_is_sender

软件开发生命周期 软件供应链安全 软件物料清单(SBOM) in-toto

直播预告|原生 vs 跨端,聊聊鸿蒙应用开发的真实感受

小红书技术REDtech

鸿蒙 前端 开发 跨端开发 小红书

适用于跨境电商的海外云手机

Ogcloud

云手机 海外云手机 云手机海外版 国外云手机

HTTP/2有哪些值得期待的特性_DevOps & 平台工程_Mark Little_InfoQ精选文章