HTTP/2.0 还没有普及,HTTP/3.0 标准就要被制定了。

据 IETF 透露,HTTP-over-QUIC 实验协议将被重命名为 HTTP/3,并成为 HTTP 协议的第三个正式版本

IETF 是 Internet Engineering Task Force 的缩写,意思是互联网工程任务小组,主要负责互联网标准的开发和推动。被他们“钦定”,HTTP-over-QUIC 成为HTTP/3.0 算是没跑了。

QUIC

先来了解一下什么是 QUIC。

QUIC(Quick UDP Internet Connections),是快速 UDP 互联网连接的缩写,这是一种实验性的传输层协议,由 Google 开发,在 2013 年实现。

QUIC 是基于 UDP 协议,它在两个端点之间创建连接,且支持多路复用。在设计之初 QUIC 希望能够提供等同于 SSL/TLS 层级的安全保障的同时,减少数据传输及创建连接时的延迟时间,双向控制带宽,从而达到更快速的体验。

QUIC 相比现在广泛应用的 HTTP2 + TCP + TLS 协议有如下的优势:

  1. 减少 TCP 三次握手及 TLS 握手时间。
  2. 改进的拥塞控制。
  3. 避免队头阻塞的多路复用。
  4. 连接迁移。
  5. 前向冗余纠错。

HTTP-over-QUIC 算是 QUIC 协议的一种应用实现,而在 IETF 开始标准化该协议时,也有意将它分为两层:传输HTTP 部分。

这个想法也是想将 QUIC 传输的部分独立出来,这样可以方便的用于其他场景下的数据传输,而不仅仅为 HTTP 或者其他类 HTTP 的协议使用。

Google 与 QUIC

Google 一直在对协议标准上做努力,早年间提出的 SPDY 协议,被 IETF 标准化之后推出了类似于 SPDY 的 HTTP/2.0 协议标准,Google 立即宣布放弃对 SPDY 的支持,转而支持 HTTP/2。而 QUIC 也是 Google 提出的一种基于 UDP 的传输协议。

Google 希望 QUIC 能够慢慢取代 TCP 和 UDP,成为移动互联网上,二进制数据传输的新协议。通过 Google 的测试证明,QUIC 更快也更安全。

QUIC 即 HTTP/3.0

QUIC 虽然在 2013 年就被 Google 提出,但是直到 2015 年才被提议作为 IETF 的标准草案,并在一年之后,就是 2016 年 7 月,提出了 HTTP-over-QUIC。

在上个月的邮件讨论中,IETF HTTP 和 QUIC 工作组主席 Mark Nottingham 正式提出将 HTPP-over-QUIC 重命名为 HTTP/3.0。随后的几天讨论中,此项提议被 IETF 成员接受,并给出了官方认可。

自此,HTTP-over-QUIC 正式成为 HTTP/3.0,为 HTTP 协议的下一个主要版本。

QUIC 还有多远

虽然 Chrome 从 29 版本开始就添加了 HTTP-over-QUIC 的支持,并且今年开始 Facebook 也开始采用这项技术。

但是这个在 HTTP/2.0 还不是主流的环境下,HTTP/3.0 已经确定,它就在未来的某个地方。

据 W3Techs 统计,截止到 2018 年 11 月,前 1000 万网站在中,有 31.2% 支持了 HTTP/2.0,而 QUIC 只有 1.2%,从趋势上看,可以说离我们还很远。

小结

HTTP/3.0 是一个仍在开发中的协议,计划在今年内完成,但是可以预见的,它离普及还很远。

很多协议的设计思想是非常值得我们借鉴与学习的,对协议有兴趣的朋友,我找了一篇腾讯团队的资深研发工程师写的一篇 QUIC 协议的原理分析,通俗易懂,有兴趣可以点击“阅读原文”查看。

觉得有帮助记得点赞和分享哦,谢谢。

参考:
https://www.zdnet.com/article/http-over-quic-to-be-renamed-http3
https://daniel.haxx.se/blog/2018/11/11/http-3
https://zhuanlan.zhihu.com/p/32553477


公众号后台回复成长『成长』,将会得到我准备的学习资料,也能回复『加群』,一起学习进步;你还能回复『提问』,向我发起提问。

推荐阅读:

图解 Chrome,架构篇 | 利用预处理脚本,管理小程序代码| 分词,科普及解决方案| 图解:HTTP 范围请求 | 小程序学习资料 |HTTP 内容编码 | 辅助模式实战 | 辅助模式玩出花样 | 小程序 Flex 布局

Google 的 QUIC 华丽转身成为下一代网络协议: HTTP/3.0的更多相关文章

  1. 我的这10年——从机械绘图 到 炼油 到 微软MVP 的华丽转身

    年底了,各种总结计划满天飞,有空的时候我也一直在思考这么多年,是怎么过来的.也曾经很迷茫,希望经验和经历能给大家一点带来一点正能量的东西.10年很长,10年前说实话我没有思考过现在的样子,但10年前的 ...

  2. 揭秘传智播客班级毕业薪资超7k的内幕系列之四----汽车工的华丽转身

         ---不是本科毕业?不是计算机专业?做过电子厂?做过数控?看传智中专生侃项目,"侃晕"项目经理.从流水线上华丽转身,8.5k高薪再就业      系列三承诺写写上海传智J ...

  3. HTTP协议以及HTTP2.0/1.1/1.0区别

    HTTP协议以及HTTP2.0/1.1/1.0区别 一.简介 摘自百度百科: 超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议.所 ...

  4. Web 协议 HTTP1.0 HTTP1.1 SPDY HTTP2.0

    Web 协议 HTTP1.0 HTTP1.1 SPDY HTTP2.0 HTTP1.0 VS HTTP1.1 长连接HTTP 1.0需要使用keep-alive参数来告知服务器端要建立一个长连接,而H ...

  5. 纯手工打造漂亮的垂直时间轴,使用最简单的HTML+CSS+JQUERY完成100个版本更新记录的华丽转身!

    前言 FineUI控件库发展至今已经有 5 个年头,目前论坛注册的QQ会员 5000 多人,捐赠用户 500 多人(捐赠用户转化率达到10%以上,在国内开源领域相信这是一个梦幻数字!也足以证明Fine ...

  6. [置顶] 纯手工打造漂亮的垂直时间轴,使用最简单的HTML+CSS+JQUERY完成100个版本更新记录的华丽转身!

    前言 FineUI控件库发展至今已经有 5 个年头,目前论坛注册的QQ会员 5000 多人,捐赠用户 500 多人(捐赠用户转化率达到10%以上,在国内开源领域相信这是一个梦幻数字!也足以证明Fine ...

  7. 前端向后台的华丽转身 — PHP基础篇

    这一次,本K带大家来看一下关于PHP中数组.字符串的一些注意事项和函数(方法). 一.PHP中的数组 (一)PHP中的数组简介 数组类型是PHP两种复合数据类型之一.根据下标的不同,可以将PHP中的数 ...

  8. 前端向后台的华丽转身 — PHP入门篇

    三个月就这么悄悄溜走了,本K对于前端虽然有了一定的认识,但对一些方面还是处于一种比较萌币的状态,就在这种萌币状态下,本K又跟着大神浩开始了后台语言-PHP语言的学习.PHP的学习对于学过其他语言的人来 ...

  9. RyuJIT的华丽转身【译文】

    2018-06-19 RyuJIT是作为.NET即时编译器的代号称谓,它是.NET运行时的基本组件之一.与此相反的是,Roslyn作为C#编译器,其编译C#代码成为IL字节码.然后,其再将IL字节码编 ...

随机推荐

  1. Spring Cache 笔记

    @(Java ThirdParty)[Spring Cache] Spring Cache Abstraction 简介 Spring Cache提供了对底层缓存使用的抽象,通过注解的方式使用缓存,减 ...

  2. Pascal Triangle

    Description: Given numRows, generate the first numRows of Pascal's triangle. For example, given numR ...

  3. KNN算法思想与实现

    第二章 k近邻 2.1 算法描述 (1)采用测量不同特征值之间的距离进行分类 优点:对异常点不敏感,精度高,无数据输入设定 缺点:空间,计算复杂度高 适合数据:标称与数值 (2)算法的工作原理: 基于 ...

  4. python笔记:#003#PyCharm 的初始设置

    PyCharm 的初始设置(知道) 目标 恢复 PyCharm 的初始设置 第一次启动 PyCharm 新建一个 Python 项目 设置 PyCharm 的字体显示 PyCharm 的升级以及其他 ...

  5. 2014金山笔试_编写一个数组类 MyVector

    //编写一个数组类 MyVector,数组内容可以动态扩充,实现构造,析构,赋值操作符重载,插入,删除,获取元素个数,获取数组容量(不可以使用STL等的容器类,不能使用 //不连续的存储空间) #in ...

  6. JavaScirpt的this指向 apply().call(),bind()个人笔记

    写在前头: 本站内容为个人学习记录,纯属个人观点,不喜勿喷,欢迎指正! 笔记记录缘由:JavaScript的流行趋势已经势不可挡,衍生的AngularJs,Node.js,BootStrmp中小企业的 ...

  7. Java 算法(二)

    [程序9] 题目:一个数如果恰好等于它的因子之和,这个数就称为"完数".例如6=1+2+3.编程找出1000以内的所有完数 //第一种public class A09 {publi ...

  8. 字符串转json以及获取域名的参数

    本例将通过location.search来进行字符串拼接成json以及查询域名参数的value console.log(request('id')); function request(obj){ v ...

  9. mac 登录亚马逊云服务器报错:Permission denied (publickey).

    申请的亚马逊云服务器EC2,实例为ubuntu系统 一.打开终端,定位到放置密钥的文件夹: 二.确保私有秘钥不是公开可见的: p.p1 { margin: 0.0px 0.0px 0.0px 0.0p ...

  10. Web3与智能合约交互实战

    写在前面 在最初学习以太坊的时候,很多人都是自己创建以太坊节点后,使用geth与之交互.这种使用命令行交互的方法虽然让很多程序员感到兴奋(黑客帝国的既视感?),但不可能指望普通用户通过命令行使用Dap ...