赣州新闻网

首页 / 科技

了解HTTP / 2的4大支柱

2020-04-09 · 赣州新闻网 · 科技

持久会话,多路复用流,标头压缩和优先级

我们通过艰苦奋斗而学到的Web软件体系结构的基本原理即将进入一个全新的时代。 Node.js后端工程师和前端开发人员需要掌握HTTP / 2如何减少请求/响应往返的延迟并提高整体吞吐量的方法。

纠结的Web服务刚刚结束了所有其HTTP / 1.1服务器的退役。 现在一切都已建立并r T & V % ?在快速W B ! 0 4 ] `用h2load测试工具运行基准测试,以测量HTTP / 2吞吐率。 他们已经在其他博客文章中报告了他们的发现. e * r O j。 总体而言,结果令人印象深刻。

\"但是什么使它变得如此快呢?\" 埃内斯托问,特别是没有人问。 在早X K ( + # G R ( }上进行混乱之前,他有几分钟的空闲时间,因此他开始阅读IETR ^ $ % x通过索引报头名称,重用不变的报头值以及将交换打包? W 6 ; ~为二进制格式。

\"带索引的标题名称意味着可以将常 t D S用的标题名称表示为一个小数字,而不是一个长字符串。 例如,coo & / C +kie只是变成索引号32。

\"重用不变的标头值是一种优化,其中E I 7 - J * .标头值在第一个请求期; z Y - G间添加到动态表中,并在第二个请求重用相同的值时由索引值引用。 因此,例如,如果将Cookie标头值AB12CD34EF5600AABBC& Z I o % O , .C与100个资源请求一起发送,则仅第一个请求会产生20字节的开销。 其他99个请求仅传递为其建立的动态表的索引号。

\"使用二进{ # v L { *制格式进行压缩意味着可以通过将数字32塞入仅7位来对其进行压缩,并将20字节的cookie AB12CD34EF5600AABBCC压缩为仅16个字节。 这是一种专门为Q I 8 l 8HTTP标头设计的霍夫曼编码,其中每一点都很重要。\"

\" TMI,\" Ken低语,开始变得不耐烦。

最后,优先级排序是一种允许j n 6 b 7 { s ?对响应的调度K 4 6进行B m E 微调的方案。 鉴于请求不再被行首瓶颈所阻止,因此可能同时存在许多正在运行的请求。

\"为- ` n Y , 3了计划这些资源中的哪些需要更早传输,以及哪些资源可以延迟,HTTPt ; f / 2允许使用加权机制b = 0 b % K对它们进行优先级排序。 可以为| 8 s U z g : 2每个响应分配一个权重,范围从1(低优先级+ / ? Y F)到256(高优先级),从而使传输顺序独立于源文档定义的顺序。

\S $ 9 F @ k l"因此,\"德文问道,\"优先级排序可以使样式表和Web字体尽早发送,以防止未样式化文本(FOUT)泛滥。\"

Ernesto继续说道:\"的确如此,并且优先级划分还可以使脚本足够早地发送,以防止用户体验到\"过时的\"应用程序... 您知道,页面的加载位置看起来不错,但是由于JavaScript仍在e h 2 4 V m传输中,因此无法响应用户操作。

了解HTTP / 2的4大支柱

总而言之,持久会话,多B W j $ f a ?路复用流和标头压缩都可以加快页面加载速度。 优先级可以微调传输时间表,以满足网站的特定要求。\"

\"酷!\" 德文印象深刻。 他喜{ w ? p欢这种细节。

\U D"但是投机性p S $推销呢?\" 肯问:\"那不是您要研究的内容吗?\"

\"嗯,是的,\"埃内斯托停顿了一下,\"那是一件整件事。\" 他拖延时间,\"我今天要解决这个问题。\"

埃内斯托还没有走出困境。 但至少他站稳了脚跟。

了解HTTP / 2的4大支柱


(本文翻译自Joe Honton的文章《Understanding the 4 Pillars of HTTP/2》,参考:https://codeburst.io/tws-013-i Q p @ ) xunderstanding-the-4-pillars-of-http2-b93096036ac0)

测试文章请求体验内容标题角色这是崇义