写点什么

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:236074

评论

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

仅用5M数据超过 OpenAI?快手最新 Code Embedding 模型 OASIS(绿洲)发布

快手技术

开源 code embedding

肝完阿里这份Java面试八股文,我成功拿下今年第15个Offer

开心学Java

Java 程序员 架构师 java面试 八股文

【0基础转型】1个月成为大数据ETL工程师:轻松月入过万

敏捷调度TASKCTL

数据仓库 Shell ETL TASKCTL #大数据

从“几年”到“秒”:重新思考公钥基础设施(PKI)

安全乐谷

Java 安全 企业管理 密码学 企业安全

亚洲唯一!华为云入选Gartner®云应用平台魔力象限

平平无奇爱好科技

2024SACC中国系统架构师大会,NineData联合创始人周振兴受邀参会

NineData

混合云架构 NineData 周振兴 中国系统架构师大会 SACC

YC创投:我们只投这些创业方向,其他方向不看

安全乐谷

创业 投资 社交 出海 YC

从0到1构建完整知识体系!阿里SpringBoot全彩小册开源

了不起的程序猿

Java 微服务 架构师 springboot java面试

怎么实现异地组网?

Ogcloud

组网 企业组网 企业网络 异地组网

多维度解析低代码:从技术架构到插件生态

JeeLowCode低代码平台

低代码平台

关注度上升,交易量直线上涨,Base Season 即将到来?

TechubNews

2024最新Java面试题汇总(附完整答案)

架构师之道

编程 java面试

怎么知道 AI 能帮我写多少代码?

cloud studio AI应用

腾讯 #腾讯云

探索拼多多API:轻松获取商品详情

代码忍者

API 接口 pinduoduo API

HarmonyOS 5.0应用开发——轮播图(Swiper)

高心星

鸿蒙 huawei arkui HarmonyOS NEXT

HarmonyOS 5.0应用开发——列表(List)

高心星

鸿蒙 arkui HarmonyOS NEXT

公链开发中的技术实现路径:构建高效、安全的去中心化网络

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

淘宝天猫API接口:解锁商品详情与关键字搜索的无限可能

代码忍者

API 接口 pinduoduo API

In-Depth Analysis: 11BE IPQ5322 vs. 11AX IPQ8072—Who Leads the Future of Industrial Networks?

wifi6-yiyi

WiFi7

GreatSQL内存消耗异常排查攻略:从系统到应用层面的深入分析

GreatSQL

解锁电商新境界:1688阿里巴巴API接口深度探索与应用实践

代码忍者

API 接口 pinduoduo API

数据填报遇难题?五步妙法教你轻松攻克

JEECG低代码

数据分析 数据可视化 报表 报表工具 数据填报

访问国外网站的几个方法及其优缺点

Ogcloud

海外网络加速 海外网络专线 跨国网络专线 海外网络访问

租用 4090 算力云电脑,这些性能指标需关注!

Finovy Cloud

云桌面 显卡 云电脑

必看!淘宝商品详情数据接口调用,助力商城上货实战全流程(仅供参考)

tbapi

淘宝商品详情接口 商品上货接口

定档12月20日!星宸科技2024开发者大会暨产品发布会举办在即

科技热闻

再获权威认证:ISO 27001认证助力伊克罗德迈向卓越信息安全之路!

伊克罗德信息科技

WiFi 7 IPQ5312 vs. WiFi 6 IPQ8074-Revolutionizing Mining Networks:—Who’s the King?

wifi6-yiyi

mesh

华为云软件开发生产线(CodeArts)10月新功能特性

平平无奇爱好科技

IPQ4019 vs. IPQ8074: Pros and Cons for Building Stable Networks

wallyslilly

IPQ4019 IPQ8074

小红书详情API接口的获取与应用

科普小能手

API Python JSON 小红书API接口 小红书笔记接口 小红书API

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