zlib压缩

78 阅读1分钟

gzip 和 deflate 区别

压缩效率:Gzip压缩通常有更高的压缩率 压缩速度:Gzip需要更多压缩时间,通常用于文件压缩,deflate用于网络传输和http的内容响应编码

const zlib = require('zlib');
const fs = require('node:fs');
const http = require('node:http');

// 压缩 createGzip
// const readStream = fs.createReadStream('./index.txt')
// const writeStream = fs.createWriteStream('./index.txt.gz')
// readStream.pipe(zlib.createGzip()).pipe(writeStream)

// 解压 createGunzip
// const readStream = fs.createReadStream('./index.txt.gz')
// const writeStream = fs.createWriteStream('./index2.txt')
// readStream.pipe(zlib.createGunzip()).pipe(writeStream)

// 压缩 createDeflate
// const readStream = fs.createReadStream('./index.txt')
// const writeStream = fs.createWriteStream('./index.txt.gz')
// readStream.pipe(zlib.createDeflate()).pipe(writeStream)

// 解压 createInflate
// const readStream = fs.createReadStream('./index.txt.gz')
// const writeStream = fs.createWriteStream('./index2.txt')
// readStream.pipe(zlib.createInflate()).pipe(writeStream)

const server = http.createServer((req, res) => { 
    const txt = '你好'.repeat(1000)
    res.setHeader('Content-Encoding', 'gzip')
    res.setHeader('Content-type', 'text/plain; charset=utf-8')
    // let result = zlib.gzipSync(txt)
    let result = zlib.deflateSync(txt)
    res.end(result)
})

server.listen(3000) // 小于65535