如何达到高效的网络信息传播

  第一点是从产生信息的角度来看,即信息量要足够小。举例来说,从HTTP 1.1升级到HTTP2之后,在HTTP 2中对HTTP 1.1中的REST架构中反复传输大量的HTTP header字段,会使用哈夫曼编码即一种常用的压缩算法。哈夫曼编码的本质就是考虑了信息熵的概念,它的核心原理是对反复出现的文字就使用较短的编码。比如HTTP 2中只用5位来编写一个八位的一个单字节的一个数字。对于很罕见出现的们就采用较长的编码。在减少信息量的角度来说,除了使用哈夫曼编码以外,也可以使用静态表和动态表的方式。

  静态表是对非常常见的内容,比如请求方式为GET、响应码为200等反复出现的Header信息。将它们硬编码到客户端服务器的中间件的代码中,比如出现i表示GET请求,出现某一个数字代表POST请求。如果硬编码到代码中,就可以很好的进行解析。静态表体积是有限的,最有效的方法是动态表。

  讲解动态表之前,先讲解下时间维度的相关性。比如说对高清图片进行压缩,如果对它进行十倍的压缩,基本上还看不出失真,但已经到极限了。但是如果对高清视频进行压缩,可以将其压缩到100倍到1000倍 ,但很可能还不是很明显的能够感觉出来。这就是由于时间维度上的相关性。比如说视频每秒是30帧或者60帧,这些帧与帧对应图片的变化是非常小的。所以只要设计第一帧为关键帧,从而完整的存储这张图片。而后面的帧只是相对于第一帧的一个变化的增量,那么第二帧及其后面的帧的信息量就非常少了。所以HTTP2中的动态表也是基于同样的道理。第一次进行信息传输时,UA可能是Chorme或者是FireFox,但是一个页面上可能包含几百个资源,甚至可能反复访问该网站数个小时,此时就可以在两端对这个UA进行动态编码,比如通过整型数字进行编码。后续只要传输整型数字就可以了。

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值