http3文章自译

自译-仅为自己学习,不喜勿喷~(文末有原文链接)

HTTP已经被chrome的canary和curl支持了,可以下载自行体会

chrome:latest Canary build,启动时需要设置参数“--enable-quic” 和 “--quic-version=h3-23”,不知道怎么设置的,直接点击跳转 command-line arguments.

curl: brew install--HEAD -s https://raw.githubusercontent.com/cloudflare/homebrew-cloudflare/master/curl.rb

为什么要使用HTTP3(http的1.0,1.1,2.0对比)?

  在深入讨论HTTP/3前让我们先大概过一下HTTP的发展历程,以便说明HTTP/3为什么是必须的

1996年HTTP/1.0的发布定义了今天HTTP报文的基本格式(假定HTTP/0.9不存在).在HTTP/1.0中clients和servers的每个request/response都会创建TCP连接,这意味着所有的请求都必须经过TCP和TLS握手才能传递数据,这中间的消耗是很大的.(这个问题在1.1中的解决方案是keep-alive保持连接,在2中的解决方案是concurrently multiplex并发多路复用)

比较难受的是HTTP/1.0不是在建立连接之后立即传输数据,而是强制执行一个叫“slow start”的预热期(搞得和冬天开车一样,热车.传说中的慢启动).“start slow”出现时为了解决网络拥塞问题(这个问题时什么以后在看吧).但是因为每个连接都需要慢启动,那肯定就很慢了

在HTTP/1.1引入了一个全新的东西:“keep-alive”,clients可以复用TCP连接了.虽然多个请求可以公用一个连接了,但是必须按序序列化:也就是一个连接在同一刻只能处理请求/响应(还不是很完美).

  随着互联网的发展,并发请求/返回的需求更强烈了:浏览器访问网站获取更多的资源(css,js,images,font…).但是请记住HTTP/1.1,在同一时间,同一TCP连接上只能处理一个请求.当然在网络层它可以并发的创建多个TCP连接去处理同一个源的请求,但是这样一来使用“keep-alive”的意义就没那么大了.

在10年之后,SPDY和HTTP/2引入了“stream”的概念:本质上是实现在同一个TCP连接上并发处理多个不同的HTTP的抽象,这样浏览器确实可以更有效的复用TCP.

但是HTTP/2依然不是好的解决方案.HTTP/2确实解决了低效使用单TCP连接的问题.但是还会引出了新的问题:“head-of-line blocking”(这个问题也是随后在理解).

聊聊HTTP3

这就是为什么HTTP/3诞生的原因:HTTP/3使用了一个新的网络传输协议QUIC在传输层引入了streams作为一等公民取代TCP作为会话的传输层.QUIC流共享同一个QUIC连接,所以在创建新的QUIC流时不需要额外的握手和慢启动,但因为QUIC streams时独立传递的所以一个流丢包并不会影响其他的流.这可能是因为QUIC数据包是基于UDP数据包的.UDP的使用较TCP有更大的灵活性,且能使QUIC实现在用户空间中完全生存-就像TCP一样协议的更新和操作系统没有绑定关系.使用QUIC,HTTP级的流能被完全的映射到QUIC流上,这样可以获得HTTP/2的全部好处而不是“head-of-line blocking”

QUIC还结合了典型的TCP三次握手和TLS 1.3握手,结合这些步骤意味着加密和身份认证是被默认提供的,同时也是为了更快的建立连接.换句话说,即使是全新的QUIC连接被初始化建立,也比TCP+TLS快

  但是,为什么不仅仅使用基于QUIC的HTTP/2,而是创造一个权限的HTTP修订版?毕竟HTTP/2也提供了流复用的特性.事实证明,这比全新QUIC要复杂的多.

尽管某些HTTP/2的特性能很容易映射到QUIC上,但不是所有哦(有时间再看不是的有哪些).



http3过去-现在-未来:https://blog.cloudflare.com/http3-the-past-present-and-future/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 221,576评论 6 515
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,515评论 3 399
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 168,017评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,626评论 1 296
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,625评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,255评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,825评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,729评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,271评论 1 320
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,363评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,498评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,183评论 5 350
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,867评论 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,338评论 0 24
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,458评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,906评论 3 376
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,507评论 2 359

推荐阅读更多精彩内容

  • 原文地址HTTP/3(QUIC)技术演变 https://mojotv.cn/cloudflare-http3-p...
    MojoTech阅读 406评论 1 5
  • 最近对计算机网络相关的知识进行了复习,包括对之前不太熟悉的部分重新学习了一次,做了一些总结。移除了大部分偏向物理层...
    hexiaoxiao阅读 783评论 0 2
  • 1. 引言 建立在 TCP 基础之上的 HTTP 是互联网上应用最为广泛的一种网络协议,诞生之初,主要就是为了...
    gnolizuh阅读 3,732评论 0 0
  • QUIC(快速UDP互联网连接)协议是一种新的默认加密的互联网通信协议,它提供了许多改进,旨在加速HTTP通...
    jinwangkeji阅读 15,804评论 0 7
  • 引流渠道有下面几点: 1)朋友圈引流,因为好多顾客用产品好多年了,还有在朋友圈的微友有好几年了,有一定的信任度。 ...
    四眼姐吃货广惠阅读 185评论 0 0