什么是Gzip
复制大神的解释:
《GZIP》最早是由Jean-loup gaily和Mark Adler创作的,用于UNIX系统的文件压缩。我们经常使用带后缀的文件。这是GZIP格式的。如今,它已经成为互联网上使用的一种非常常见的数据压缩格式,或文件格式。HTTP协议上的GZIP编码是一种用于提高WEB应用程序性能的技术。GZIP压缩技术常用于流量大的网站,让用户感觉更快。这一般是指安装在WWW服务器上的一个功能。当有人访问此服务器中的网站时,服务器中的此功能会压缩网页内容并将其传输到访问的计算机浏览器进行显示。一般来说,纯文本内容可以压缩到原始大小的40%。这样传输快,效果是你点击网址后会很快显示出来。当然,这也会增加服务器的负载。通常,该功能模块安装在服务器中。
Gzip压缩比
例如,webpack打包的js文件相对较大。虽然我们可以使用chunk函数来分离和混淆文件,但总的体积仍然不小;这时,看看gzip压缩的效果:
启用Gzip之前
启用Gzip后,
比较三个文件前后的压缩大小:
文本文件:
Iview.min.js: 429kb-109kb,压缩率74.6% base . min . js 3360 309 kb-81.7 kb,压缩率73.56% style . min . CSS : 207 kb-30.9 kb,压缩率85%
图片:
图片1: 63.2kb-63.2kb,压缩比0%?
我们可以看到,文本文件的压缩效果非常显著,但图像体积保持不变。看看文本类的http响应头,gzip压缩了:
而且没有图片:
这是因为图片使用gzip的效果(png、jpg等)。)不好甚至正好相反,所以默认情况下一般不会对图片执行gzip压缩。
按节点. js启用gzip
我们来说说node的express框架是如何使用gzip:的
1.安装压缩依赖项:
npm安装压缩
2.呼叫:
var compression=required(' compression ')var app=express();//尽量在其他中间件之前使用compressapp . use(compression());
基本用法就可以了。此外,如果您只想对某些请求使用此功能,可以使用其过滤方法:
app . use(compression({ filter : should compression })函数should compression(req,Res) {if (req。标头[' x-无压缩']){//请求标头包含' x-无压缩'返回false}返回压缩。过滤器(请求,资源)}
其他功能请参考压缩文档。
附件是nginx的配置
#on表示启用,off表示关闭gzip on#设置允许压缩的最小字节数,页面字节从标题中的Content-Length获取。默认值为0,无论页面大小如何,都会对其进行压缩。建议设置大于1k的字节数。如果小于1k,可能会越来越大。gzip _ min _ length 1k#缓存压缩结果需要获得多少内存,‘4 ^ 16k’表示以16k*4为单位获得gzip _ buffers 4 16k#gzip压缩比(1~9),越小压缩效果越差,但越大处理越慢,所以一般取中间值gzip _ comp _ level 5;#对特定MIME类型有效,其中' text/html '强制启用gzip _ typestext/plain application/x-JavaScript text/CSS application/xmltext/JavaScript application/x-httpd-PHP;简要解释参数
1) gzip
语法:gzip on/off默认值:off作用域:http,服务器,位置描述:打开或关闭gzip模块,其中on表示start。
2) gzip_min_length
语法:gzip_min_length长度默认值:gzip_min_length 0作用域:http、服务器、位置说明:设置允许压缩的最小字节数,该值从标头中的Content-Length获取。默认值为0,无论页面大小如何,都会对其进行压缩。建议设置大于1k的字节数。如果小于1k,可能会越来越大。|
3) gzip_buffers
语法: gzip_buffers数量大小默认值: gzip_buffers 4 4k/8k作用域: http,服务器,位置说明:设置系统获取几个单位的缓存来存储gzip的压缩结果数据流。4 16k代表以16k为单位申请内存,是以16k为单位申请原始数据大小的4倍。
4) gzip_comp_level
语法: gzip_comp_level 1.9默认值: gzip _ comp _ level 1 Scope : http,服务器,位置说明:gzip压缩比,1压缩比最小,处理速度最快,9压缩比最大,但处理最慢(传输快但消耗cpu)。这里设为5。5)gzip _ type
语法: gzip _ type MIME-type[MIME-type.]默认值: gzip_types text/html作用域: http,服务器,位置说明:匹配mime类型进行压缩,“text/html”类型将始终被压缩(无论是否指定)。设置为text/plain application/x-JavaScript text/CSS application/xmltext/JavaScript application/x-httpd-PHP。