Node基礎 資源壓縮之zlib

2021-09-23 07:06:41 字數 1882 閱讀 1468

概覽

瀏覽器通過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壓縮

**跟前面例子大同小異。這裡採用了slib.gzipsync(str)對字串進行gzip壓縮。

寫在後面

deflate壓縮的使用也差不多,這裡就不贅述。更多詳細用法可參考官方文件。

Node基礎 資源壓縮之zlib

瀏覽器通過http請求頭部裡加上accept encoding,告訴伺服器,你可以用gzip,或者defalte演算法壓縮資源 accept encoding gzip,deflate 那麼,在nodejs裡,是如何對資源進行壓縮的呢?答案就是zlib模組。非常簡單的幾行 就完成了本地檔案的gzip...

Node基礎 資源壓縮之zlib

瀏覽器通過http請求頭部裡加上accept encoding,告訴伺服器,你可以用gzip,或者defalte演算法壓縮資源 accept encoding gzip,deflate 那麼,在nodejs裡,是如何對資源進行壓縮的呢?答案就是zlib模組。非常簡單的幾行 就完成了本地檔案的gzip...

Node基礎 資源壓縮之zlib

瀏覽器通過http請求頭部裡加上accept encoding,告訴伺服器,你可以用gzip,或者defalte演算法壓縮資源 accept encoding gzip,deflate 那麼,在nodejs裡,是如何對資源進行壓縮的呢?答案就是zlib模組。非常簡單的幾行 就完成了本地檔案的gzip...