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. 架构之微服务设计(Nginx + Upsync)

    Upsync,微博开源基于Nginx容器动态流量管理方案 . Nginx 以其超高的性能与稳定性,在业界获得了广泛的使用,微博的七层就大量使用了 Nginx .结合 Nginx 的健康检查模块,以及动 ...

  2. 常用域名记录解释:A记录、MX记录、CNAME记录、TXT记录、AAAA记录、NS记录

    A记录 A记录是用来创建到IP地址的记录. A记录设置技巧 1.如果想创建不带www的记录,即ezloo.com,在主机记录中填写@或者留空,不同的注册商可能不一样. 2.创建多个域名到同一个IP,比 ...

  3. CSS学习笔记四:下拉选择框以及其动画特效

    以前学的只是了解了css的一些基本属性,在做项目的时候都是直接使用bootstrap响应式来写项目,这样子很方便,很快捷,但是在自己看来还是有一点缺陷的,毕竟,我很多时候不怎么清楚它里面的具体运作.所 ...

  4. 第一章 初识数据库Mysql

    初识数据库Mysql(my)   在企业中 percona: 一.数据库基础知识 Mysql是一个开放源代码的数据库管理系统(DBMS),它是由Mysql AB公司开发.发布并支持的.Mysql是一个 ...

  5. Ubuntu命令操作

    1../ 当前路径2.ls 列举当前路径下的所有文件及文件夹 默认情况不显示隐藏文件 ls -a 显示隐藏文件 ls -lah h是文件大小 l是显示文件3.cd 跳转路径4.pwd 查看当前所在路径 ...

  6. Python_字符串简单加密解密

    def crypt(source,key): from itertools import cycle result='' temp=cycle(key) for ch in source: resul ...

  7. Vlan 原理

    VLAN(Virtual LAN),翻译成中文是"虚拟局域网".LAN可以是由少数几台家用计算机构成的网络,也可以是数以百计的计算机构成的企业网络.VLAN所指的LAN特指使用路由 ...

  8. Linux 操作系统基础知识

    1.操作系统总体介绍 •CPU: 就像人的大脑,主要负责相关事情的判断以及实际处理的机制.查询指令: cat /proc/cpuinfo•内存: 大脑中的记忆区块,将皮肤.眼睛等所收集到的信息记录起来 ...

  9. String的lastIndexOf()用于获取字符串中某个子字符串最后一次出现的位置

    String还定义有lastIndexOf(String str,int from) 意思为str在字符串多次出现时将返回最后一次出现的位置. eg: String str = "I can ...

  10. SSM-Spring-21:Spring中事物的使用案例

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 股票买卖案例(我会用三种开启事物的方法 代理工厂bean版的,注解版的,aspectj xml版的) 简单的介 ...