13|哈夫曼树:HTTP2.0是如何更快传输协议头的?
黄清昊
该思维导图由 AI 生成,仅供参考
你好,我是微扰君。
HTTP 是当今最广为使用的互联网传输协议,我们都听说过 HTTP/1.0、HTTP/2.0、SPDY、HTTP/3.0 等概念,但是对这几者之间的区别能如数家珍的同学却不多,比如 HTTP/2.0 在编码方面做了什么样的改进,比 HTTP/1.1 的传输更快呢?
我们今天就来学习一下 HTTP/2.0 为了提高传输效率而引入的用于头部压缩的杀招:HPACK。
HPACK 应用了静态表、动态表和哈夫曼编码三种技术,把冗余的 HTTP 头大大压缩,常常可以达到 50% 以上的压缩率。其中的哈夫曼编码,底层主要就依赖了我们今天会重点学习的哈夫曼树,这也是广泛运用在各大压缩场景里的算法。
在展开讲解 HTTP/2.0 中的 HPACK 到底是怎么工作的,我们首先要来思考一下为什么要压缩 HTTP 的头,或者说,压缩到底又是什么呢?
压缩技术
我们都知道压缩技术诞生已久,在各种文件尤其是多媒体文件里,应用非常广泛,能帮助节约信息的存储空间和网络传输时间。
之所以能压缩,主要原因就是我们存储的信息往往是有模式和冗余的。以文本为例,大量单词的重复或者大量的空格,都是我们可以压缩的空间。原文件大小与压缩后文件大小的比值,我们就叫做压缩比,是衡量压缩算法有效性非常直观的指标。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
HTTP/2.0的HPACK技术引入了HPACK压缩协议头,通过静态表、动态表和哈夫曼编码技术,大大压缩了HTTP头,提高了传输效率。哈夫曼编码通过贪心算法实现最优前缀码,让出现频率高的字符用更短的编码表示,从而实现文本压缩。HPACK技术带来了显著的HTTP头大小变化,通过哈夫曼编码,HPACK可以达到高达30%-80%的压缩率,为HTTP/2.0协议带来了重大的优势。文章还介绍了HPACK的工作原理和压缩效果,以及哈夫曼编码的原理和实现过程。此外,文章还提到了HPACK的应用场景和与微服务架构下消息传递的类似之处,以及对哈夫曼树在HTTP/2.0中获得更优编码方式的讨论。整体而言,HPACK技术在HTTP/2.0中的应用为读者带来了对HTTP头压缩和传输效率提升的深入了解。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《业务开发算法 50 讲》,新⼈⾸单¥59
《业务开发算法 50 讲》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(3)
- 最新
- 精选
- Paul Shan如果所有字母出现的概率都相等,哈夫曼编码压缩就失败了,好像也没有什么编码能够处理这种情况。
作者回复: 是的 已经是熵最大的情况了
2022-01-081 - 大土豆老师说错啦,大多数语言的char类型,是两个字节,应该就C/C++是一个字节,原因是很简单的,asc2码没法表示中文,char a='中',这种必须得两个字节才能存,C/C++中char就不行了,得w_char,其他语言为了避免这种情况,char都设计成两个字节,当然,现在两个字节也已经装不下完整的unicode编码了,比如U+a3e8b这种码点,Java底层还得做特殊处理,这也是面试的一个考点。2022-01-305
- 加油加油静态哈夫曼编码能保证绝对的准确性吗,是否依赖于采样数据的数量?2022-10-14归属地:上海
收起评论