encode-decode

2020-12-09
2056

消息头的chunked和br
Transfer-Encoding:chunked
详情见: Transfer-Encoding - HTTP | MDN (mozilla.org)

 

通常,HTTP协议中使用Content-Length这个头来告知数据的长度。然后,在数据下行的过程中,Content-Length的方式要预先在服务器中缓存所有数据,然后所有数据再一股脑儿地发给客户端。
如果要一边产生数据,一边发给客户端,WEB 服务器就需要使用"Transfer-Encoding: chunked"这样的方式来代替Content-Length。

 

 

Content-Encoding: br 和 Accept-Encoding: br
详情见: Content-Encoding - HTTP | MDN (mozilla.org)

br(Brotli)算法
Google 认为互联网用户的时间是宝贵的,他们的时间不应该消耗在漫长的网页加载中,因此在 2015 年 9 月 Google 推出了无损压缩算法 Brotli。Brotli 通过变种的 LZ77 算法、Huffman 编码以及二阶文本建模等方式进行数据压缩,与其他压缩算法相比,它有着更高的压塑压缩效率。启用 Brotli 压缩算法,对比 Gzip 压缩 CDN 流量再减少 20%。

 

根据 Google 发布的研究报告,Brotli 压缩算法具有多个特点,最典型的是以下 3 个:

 

(1) 针对常见的 Web 资源内容,Brotli 的性能相比 Gzip 提高了 17-25%;

(2) 当 Brotli 压缩级别为 1 时,压缩率比 Gzip 压缩等级为 9(最高)时还要高;

(3) 在处理不同 HTML 文档时,Brotli 依然能够提供非常高的压缩率。

 

Brotli 凭借它优异的压缩性能迅速占领了市场,除了 IE 和 Opera Mini 之外,几乎所有的主流浏览器都已支持 Brotli 算法。

 

 

转载时必须以链接形式注明原始出处及本声明

扫描关注公众号