2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 教会你如何在Node.js中开启Gzip压缩方法

教会你如何在Node.js中开启Gzip压缩方法

时间:2023-04-03 16:46:32

相关推荐

教会你如何在Node.js中开启Gzip压缩方法

web前端|js教程

javascript,Node.js,Gzip

web前端-js教程

开启网站的 gzip 压缩功能,通常可以高达70%,也就是说,如果你的网页有30K,压缩之后就变成9K, 对于大部分网站,显然可以明显提高浏览速度(注:需要浏览器支持)。

微信诱导 直播源码,vscode显示冲突代码,ubuntu文本编辑,tomcat内存释放,银河麒麟安装sqlite3,网页设计html,i5 数据库服务器,免费按服务器出租,wordpress汉化版插件,前后端分离流行的前端框架,爬虫政府网站,php and,昆明seo服务,springboot接口类,html textfield 标签,发布jsp网站,个人博客网页设计程序,红酒模板免费下载,万维网登陆后台,投票页面php,delphi 成绩管理系统,易语言修改程序lzw

Gzip是什么

糗事百科网站源码,linux更新vscode,天选3装ubuntu,网址tomcat打开,sqlite可以做网游,wp下载功能插件,手机web前端优秀框架,代码混淆反爬虫,php 显示验证码,闪电精灵seo软件,asp扁平化网站源码,易语言支付宝网页填表,dz论坛公告模板,404页面查询,课程设计管理系统源码,wordpress网站程序lzw

复制大神们的解释吧:

iskyshop 源码,vscode字体c,virtualbox安装ubuntu,怎么把tomcat导入eclipse,sqlite3 图片,甜点网页设计首页,mysql数据库 购买,广东高防服务器,wechatplugin插件,流行的前端框架,mac爬虫,php 水印,seo代码优化,springboot填坑手册,wordpress标签云页面,优秀中文单页面网站,通达报表没有支持纯网页报表,模板客,织梦后台账号密码,asp页面,学生成绩管理系统asp源码,易语言调用外部程序源码lzw

GZIP最早由Jean-loup Gailly和Mark Adler创建,用于UNIX系统的文件压缩。我们在Linux中经常会用到后缀为.gz的文件,它们就是GZIP格式的。现今已经成为Internet 上使用非常普遍的一种数据压缩格式,或者说一种文件格式。HTTP协议上的GZIP编码是一种用来改进WEB应用程序性能的技术。大流量的WEB站点常常使用GZIP压缩技术来让用户感受更快的速度。这一般是指WWW服务器中安装的一个功能,当有人来访问这个服务器中的网站时,服务器中的这个功能就将网页内容压缩后传输到来访的电脑浏览器中显示出来.一般对纯文本内容可压缩到原大小的40%.这样传输就快了,效果就是你点击网址后会很快的显示出来.当然这也会增加服务器的负载. 一般服务器中都安装有这个功能模块的.

Gzip压缩率

举个例子,通过webpack打包后的js文件比较大,虽然我们可以利用chunk功能将文件分开混淆打包,但是总体积还是不小;这时候看看利用gzip压缩的效果:

启用Gzip前

启用Gzip后

对比其中三个文件前后压缩大小:

文本类文件:

iview.min.js: 429kb -> 109kb,压缩比74.6% base.min.js: 309kb -> 81.7kb,压缩比73.56% style.min.css: 207kb -> 30.9kb,压缩比85%

图片:

图片1: 63.2kb -> 63.2kb,压缩比0%?

我们看到文本类文件的压缩效果非常显著,但是图片体积没变。看一下文本类的http响应头是有gzip压缩过:

而图片的没有:

这是因为一般对于图片(png,jpg等)使用gzip的效果不好甚至恰得其反,所以一般都默认对图片不进行gzip压缩。

node.js启用gzip

下面说一下node的express框架如何使用gzip:

1.安装一个compression依赖:

npm install compression

2.调用:

var compression = require(compression)var app = express();//尽量在其他中间件前使用compressionapp.use(compression());

基本的使用就是这样就ok了,另外如果想只对某些请求使用此功能,可以使用它的过滤方法:

app.use(compression({filter: shouldCompress}))function shouldCompress (req, res) { if (req.headers[x-no-compression]) { // 这里就过滤掉了请求头包含x-no-compression return false } return compression.filter(req, res)}

其他的功能请参考compression的文档。

另外附上nginx的配置

#on为启用,off为关闭gzip on;#设置允许压缩的页面最小字节数,页面字节数从header头中的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类型生效,其中 ext/html被系统强制启用gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php;

简单解释下参数

1) gzip

语法:gzip on/off

默认值:off

作用域:http, server, location

说明:开启或者关闭 gzip 模块,这里使用 on 表示启动

2) gzip_min_length

语法:gzip_min_length length

默认值:gzip_min_length 0

作用域:http, server, location

说明:设置允许压缩的页面最小字节数,页面字节数从header头中的Content-Length中进行获取。默认值是0,不管页面多大都压缩。建议设置成大于1k的字节数,小于1k可能会越压越大。|

3) gzip_buffers

语法: gzip_buffers number size

默认值: gzip_buffers 4 4k/8k

作用域: http, server, location

说明:设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流。4 16k 代表以 16k 为单位,按照原始数据大小以 16k 为单位的4倍申请内存。

4) gzip_comp_level

语法: gzip_comp_level 1..9

默认值: gzip_comp_level 1

作用域: http, server, location

说明:gzip压缩比,1 压缩比最小处理速度最快,9 压缩比最大但处理最慢(传输快但比较消耗cpu)。这里设置为 5。

5) gzip_types

语法: gzip_types mime-type [mime-type …]

默认值: gzip_types text/html

作用域: http, server, location

说明:匹配MIME类型进行压缩,(无论是否指定)”text/html” 类型总是会被压缩的。这里设置为 text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。