在web应用中,为了节省流量,降低传输数据大小,提高传输效率,常用的压缩方式一般都是gzip,今天我们来介绍另外一种更高效的压缩方式brotli。 Brotli 是基于LZ77算法的一个现代变体、霍夫曼编码和二阶上下文建模。Google软件工程师在2015年9月发布了包含通用无损数据压缩的Brotli增强版本,特别侧重于HTTP压缩。其中的编码器被部分改写以提高压缩比,编码器和解码器都提高了速度,流式API已被改进,增加更多压缩质量级别。 与常见的通用压缩算法不同,Brotli使用一个预定义的120千字节字典。该字典包含超过13000个常用单词、短语和其他子字符串,这些来自一个文本和HTML文档的大型语料库。预定义的算法可以提升较小文件的压缩密度。使用Brotli替换Deflate(gzip)来对文本文件压缩通常可以增加20%的压缩密度,而压缩与解压缩速度则大致不变。浏览器支持情况Mozilla Firefox在Firefox 44中实现Brotli。Google Chrome从Chrome 49开始支持Brotli。Opera从Opera 36开始支持Brotli。以centos为例,配置Nginx使其支持brotli压缩1、安装依赖> yum groupinstall ‘Development Tools'2、安装libbrotlicd /usr/local/src/git clone https://github.com/bagder/libbrotlicd libbrotli./autogen.sh./configuremake && make install3、安装ngx_brotli> cd /usr/local/src/> git clone https://github.com/google/ngx_brotli> cd ngx_brotli && git submodule update –init4、下载Nginx> cd /usr/local/src> wget http://nginx.org/download/nginx-1.10.3.tar.gz> tar -xvzf nginx-1.10.3.tar.gz5、编译安装> cd /usr/local/src/nginx-1.10.3> ./configure –add-module=/usr/local/src/ngx_brotli> make# 如果是首次安装Nginx,执行make install;如果是升级,执行make upgrade> make install6、查看是否安装正常> nginx -V> nginx -t7、配置brotli在nginx.conf文件的http模块下新增以下内容#Brotli Compressionbrotli on;brotli_comp_level 6;brotli_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript image/svg+xml;8、检查是否生效打开网页,用chrome开发者工具调试,在Network一栏会发现有content-encoding:br,同时网络耗时也会明显减少。欢迎订阅「K叔区块链」 - 专注于区块链技术学习 博客地址:http://www.jouypub.com简书主页:https://www.jianshu.com/u/756c9c8ae984segmentfault主页:https://segmentfault.com/blog/jouypub腾讯云主页:https://cloud.tencent.com/developer/column/72548