怎么使用Node中的zlib
发表于:2025-11-17 作者:千家信息网编辑
千家信息网最后更新 2025年11月17日,本篇内容介绍了"怎么使用Node中的zlib"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!概览做过w
千家信息网最后更新 2025年11月17日怎么使用Node中的zlib
本篇内容介绍了"怎么使用Node中的zlib"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
概览
做过web性能优化的同学,对性能优化大杀器gzip应该不陌生。浏览器向服务器发起资源请求,比如下载一个js文件,服务器先对资源进行压缩,再返回给浏览器,以此节省流量,加快访问速度。
浏览器通过HTTP请求头部里加上Accept-Encoding,告诉服务器,"你可以用gzip,或者defalte算法压缩资源"。
Accept-Encoding:gzip, deflate
那么,在nodejs里,是如何对资源进行压缩的呢?答案就是Zlib模块。
入门实例:简单的压缩/解压缩
压缩的例子
非常简单的几行代码,就完成了本地文件的gzip压缩。
var fs = require('fs'); var zlib = require('zlib'); var gzip = zlib.createGzip(); var inFile = fs.createReadStream('./extra/fileForCompress.txt'); var out = fs.createWriteStream('./extra/fileForCompress.txt.gz'); inFile.pipe(gzip).pipe(out);解压的例子
同样非常简单,就是个反向操作。
var fs = require('fs'); var zlib = require('zlib'); var gunzip = zlib.createGunzip(); var inFile = fs.createReadStream('./extra/fileForCompress.txt.gz'); var outFile = fs.createWriteStream('./extra/fileForCompress1.txt'); inFile.pipe(gunzip).pipe(outFile);服务端gzip压缩
代码超级简单。首先判断 是否包含 accept-encoding 首部,且值为gzip。
否:返回未压缩的文件。
是:返回gzip压缩后的文件。
var http = require('http'); var zlib = require('zlib'); var fs = require('fs'); var filepath = './extra/fileForGzip.html'; var server = http.createServer(function(req, res){ var acceptEncoding = req.headers['accept-encoding']; var gzip; if(acceptEncoding.indexOf('gzip')!=-1){ // 判断是否需要gzip压缩 gzip = zlib.createGzip(); // 记得响应 Content-Encoding,告诉浏览器:文件被 gzip 压缩过 res.writeHead(200, { 'Content-Encoding': 'gzip' }); fs.createReadStream(filepath).pipe(gzip).pipe(res); }else{ fs.createReadStream(filepath).pipe(res); } }); server.listen('3000');服务端字符串gzip压缩
代码跟前面例子大同小异。这里采用了slib.gzipSync(str)对字符串进行gzip压缩。
var http = require('http'); var zlib = require('zlib'); var responseText = 'hello world'; var server = http.createServer(function(req, res){ var acceptEncoding = req.headers['accept-encoding']; if(acceptEncoding.indexOf('gzip')!=-1){ res.writeHead(200, { 'content-encoding': 'gzip' }); res.end( zlib.gzipSync(responseText) ); }else{ res.end(responseText); } }); server.listen('3000');"怎么使用Node中的zlib"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
文件
服务
浏览器
资源
浏览
代码
例子
服务器
内容
字符
字符串
就是
性能
更多
知识
实用
陌生
大同小异
学有所成
接下来
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
力控组态软件实时数据库
信息网络安全检查工作总结
徐汇区推广软件开发价格表格
路由器架设虚拟服务器
网络技术发展的体会
中国长城智能网络技术有限公司
米其云服务器
江西为来网络技术有限公司
Linuxone免费服务器
阿里云服务器安全组删了怎么办
考网络安全工程师需要什么条件
物业软件开发背景
天津服务器系统托管云空间
qq服务器地点在哪里
软件开发英文名
芜湖门店管理软件开发费用
个人软件开发公司有哪些
怎样情况服务器会烧吗
论数据库集群技术及应用
网络安全推移图
前端软件开发的框架起到什么作用
烟台dell服务器价格
做股票用什么交易软件开发
深圳服务器散热风扇厂家
云南公安厅十三五网络安全
citrix 服务器地址
qq服务器地点在哪里
mysql 开启数据库
网络安全工程师 软考
百度地图软件开发待遇