<强> Gzip是什么强>
复制大神们的解释吧:
<强> Gzip压缩率强>
举个例子,通过webpack打包后的js文件比较大,虽然我们可以利用块功能将文件分开混淆打包,但是总体积还是不小;这时候看看利用gzip压缩的效果:
启用Gzip前
启用Gzip后
对比其中三个文件前后压缩大小:
文本类文件:
iview.min。js: 429 kb→base.min 109 kb,压缩比74.6%。js: 309 kb→style.min 81.7 kb,压缩比73.56%。css: 207 kb→30.9 kb,压缩比
85%图片:
图片1:63.2 kb→63.2 kb,压缩比0% ?
我们看到文本类文件的压缩效果非常显著,但是图片体积没变。看一下文本类的http响应头是有gzip压缩过:
而图片的没有:
这是因为一般对于图片(png, jpg等)使用gzip的效果不好甚至恰得其反,所以一般都默认对图片不进行gzip压缩。
<强> node . js启用gzip 强>
下面说一下节点的表达框架如何使用gzip:
1。安装一个压缩依赖:
<代码> npm安装压缩代码>
2。调用:
var压缩=要求(压缩) 应用var=表达();//尽量在其他中间件前使用压缩 app.use(压缩());
基本的使用就是这样就好了,另外如果想只对某些请求使用此功能,可以使用它的过滤方法:
app.use(压缩({过滤器:shouldCompress})) 函数shouldCompress(点播,res) { 如果(req.headers [' x-no-compression ']) {//这里就过滤掉了请求头包含“x-no-compression” 返回假 } 返回压缩。过滤器(点播,res) } >之前
其他的功能请参考压缩的文档。
另外附上nginx的配置
#在为启用,为关闭 gzip; #设置允许压缩的页面最小字节数,页面字节数从标题头中内容长度的中进行获取。默认值是0,不管页面多大都压缩。建议设置成大于1 k的字节数,小于1 k可能会越压越大。 gzip_min_length 1 k; #获取多少内存用于缓存压缩结果,' 4 16 k表示以16 k * 4为单位获得 gzip_buffers 4 16 k; # gzip压缩比(1 ~ 9),越小压缩效果越差,但是越大处理越慢,所以一般取中间值 gzip_comp_level 5; #对特定的MIME类型生效,其中“text/html”被系统强制启用 gzip_types文本/普通应用程序/x-javascript文本/css应用程序/xml文本/javascript应用程序/x-httpd-php;简单解释下参数
1) gzip
语法:gzip开/关
默认值:从
作用域:http服务器,位置
说明:开启或者关闭gzip模块,这里使用在表示启动
2) gzip_min_length
语法:gzip_min_length长度
3)gzip_buffers
默认值:gzip_min_length 0
作用域:http服务器,位置
说明:设置允许压缩的页面最小字节数,页面字节数从标题头中内容长度的中进行获取。默认值是0,不管页面多大都压缩。建议设置成大于1 k的字节数,小于1 k可能会越压越大。|
语法:gzip_buffers号码大小
4)gzip_comp_level
默认值:gzip_buffers 4 4 k/8 k
作用域:http服务器,位置
说明:设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流。4 16 k代表以16 k为单位,按照原始数据大小以16 k为单位的4倍申请内存。
语法:gzip_comp_level 1 . .9
默认值:gzip_comp_level 1
作用域:http服务器,位置
说明:gzip压缩比1压缩比最小处理速度最快,9压缩比最大但处理最慢(传输快但比较消耗cpu)。这里设置为5。node . js服务器开启Gzip压缩教程