经过HTTP发送少量数据的三种方法

  • 电脑网络维修
  • 2024-11-15

在网络的早期期间,人们发送的文件大小仅为几KB。到了2023年,咱们享用着高分辨率的MB级别图像,并在几GB的4K(行将是8K)视频中观看。

即使有良好的互联网衔接,下载一个5GB的文件依然须要一些期间。假设你领有Xbox或PlayStation,你就知道这种觉得。

咱们有三种方法可以经过HTTP缩短发送少量数据的

它们并不是互斥的。你可以依据用例一同经常使用一切方法。

紧缩数据

1*_un0bHBemgCSDocQmucK5Q.png

要紧缩数据,咱们须要紧缩算法。

在发送恳求时,阅读器会蕴含一个名为Accept-Encoding的头,其中蕴含允许的紧缩算法列表,包括gzip(GZIP)、compress、deflate和br(Brotli)。

接上去,主机从列表当选用其允许的算法,并在Content-Encoding头中设置算法称号。

当阅读器接纳到照应时,它知道如何解析注释中的数据。

在这些算法中,最盛行的是GZIP。它是紧缩文本数据(如HTML、CSS和JavaScript)的绝佳选用。

Brotli是另一个值得一提的算法。它在紧缩HTML方面的性能甚至比GZIP更好。

这些高效的算法有一些限度。

它们对文本的紧缩成果很好,但关于紧缩图像或视频来说则无余够。毕竟,媒体曾经过了提升。

试着在你的计算机上紧缩一个视频文件。在紧缩之前和之后,你简直看不到太大的区别。

此外,简直无法能将一个5GB的视频紧缩到几KB而不损失品质。

紧缩是好的,但咱们须要一个更好的处置打算——将文件分块发送并在客户端组装局部数据。

发送分块数据

1*0WLNkzfgw9faLpTUXkk3tg.png

在版本1.1中,HTTP引入了分块数据以处置大数据状况。

在发送照应时,主机减少一个头Transfer-Encoding: chunked,让阅读器知道数据是分块传输的。

1*Nwlp0QqhEsvWl4fw-x0X7Q.png

每个分块数据都有以下组件:

想知道CRLF是什么吗?

1*s_-5lmT9176ymCAaaGCE2w.png

CR紧接着LF(CRLF,\r\n,或0x0D0A)将光标移动到下一行,而后移到行的扫尾。在本文末尾的进一步阅读局部,你可以找到更多具体消息。在这里,你可以便捷地将其视为一个分隔符。

主机继续向阅读器流式传输分块数据。当到达数据流的末尾时,它附加一个蕴含以下局部的完结标志:

在阅读器端,它期待一切数据块,直抵到达完结标志。而后,它移除分块编码,包括CRLF和长度消息。

接上去,它将分块数据组分解一个全体。因此,在Chrome DevTools上,你只能看到组装后的数据,而不是分块数据。

最终,你会收到整个数据的一块。

1*oChWIlysG3PQD3vy8ctVxw.png

分块数据是有用的。但是,关于一个5GB的视频,完整的数据依然须要一些期间能力抵达。

咱们能不能失掉数据的选定块,并在须要时恳求其余块呢?

HTTP说可以。

在选定范畴内恳求数据

1*LOGONes_KpmSN6zXaz9DhA.png

在YouTube上关上一个视频,你会看到一个灰色的进展条正在向前移动。

你刚刚看到的是YouTube在恳求选定范畴内的数据。

在主机上成功范畴恳求是可选的。假设成功了,你可以在照应头中看到Accept-Ranges: bytes。

1*MWd4AGP8lLRIQw5mketXew.png

这是一个YouTube恳求的示例。在任何“playback”恳求中,你都可以找到这个头。

范畴恳求头看起来像`Range:bytes=0-80`,它是从0开局的索引。

这个头是一个设计十分奇妙且具有杰出灵敏性的头。

假定一个数据总共有100个字节。

假设恳求的范畴有效,主机将发送带有Content-Range头的照应,验证数据范畴和总长度,例如Content-Range: bytes70-80/100。

范畴恳求宽泛用于视频流媒体和文件下载服务。

你有没有在互联网终止后继续文件下载?那就是范畴恳求。

此外,范畴恳求允许多个范畴。

例如,你可以从文件中恳求两个范畴,如Range: bytes=20-45, 70-80。

多范畴体看起来相似于分块数据。每个数据块都有以下局部:

边界仅仅是一个看起来像3d6b6a416f9b5的随机字符串,标志不同数据块的边界。

最终,体完结于边界块,以--开局,以--和CRLF完结。这个局部通知阅读器多局部曾经完结。

让咱们把它所有整合起来。照应体的结构如下所示。

总结

HTTP协助咱们经过紧缩、分块数据和范畴数据传送少量数据。

这里的思维是在须要的时刻传送咱们须要的数据,而后在须要时发送其余数据。当在设计相似系统时遇到疑问时,你可以尝试相反的思绪。

经过联合这三种方法,咱们可以发送紧缩的分块数据范畴数据。

  • 关注微信

本网站的文章部分内容可能来源于网络和网友发布,仅供大家学习与参考,如有侵权,请联系站长进行删除处理,不代表本网站立场,转载联系作者并注明出处:https://duobeib.com/diannaowangluoweixiu/6451.html

猜你喜欢

热门标签

洗手盆如何疏浚梗塞 洗手盆为何梗塞 iPhone提价霸占4G市场等于原价8折 明码箱怎样设置明码锁 苏泊尔电饭锅保修多久 长城画龙G8253YN彩电输入指令画面变暗疑问检修 彩星彩电解除童锁方法大全 三星笔记本培修点上海 液晶显示器花屏培修视频 燃气热水器不热水要素 热水器不上班经常出现3种处置方法 无氟空调跟有氟空调有什么区别 norltz燃气热水器售后电话 大连站和大连北站哪个离周水子机场近 热水器显示屏亮显示温度不加热 铁猫牌保险箱高效开锁技巧 科技助力安保无忧 创维8R80 汽修 a1265和c3182是什么管 为什么电热水器不能即热 标致空调为什么不冷 神舟培修笔记本培修 dell1420内存更新 青岛自来水公司培修热线电话 包头美的洗衣机全国各市售后服务预定热线号码2024年修缮点降级 创维42k08rd更新 空调为什么运转异响 热水器为何会漏水 该如何处置 什么是可以自己处置的 重庆华帝售后电话 波轮洗衣机荡涤价格 鼎新热水器 留意了!不是水平疑问! 马桶产生了这5个现象 方便 极速 邢台空调移机电话上门服务 扬子空调缺点代码e4是什么疑问 宏基4736zG可以装置W11吗 奥克斯空调培修官方 为什么突然空调滴水很多 乐视s40air刷机包 未联络视的提高方向 官网培修 格力空调售后电话 皇明太阳能电话 看尚X55液晶电视进入工厂形式和软件更新方法 燃气热水器缺点代码

热门资讯

关注我们

微信公众号