Node4-5靜態(tài)資源服務(wù)器實戰(zhàn)以及優(yōu)化壓縮文件實例內(nèi)容
瀏覽器控制臺看一下RequestHeader有一個Accept-Encoding,而RespondHeaders中也會有一個Content-Encoding和他進(jìn)行對應(yīng).
Accept-Encoding當(dāng)我們的瀏覽器發(fā)起一個文件的請求時告訴服務(wù)器支持哪幾種壓縮方式,也就是服務(wù)器用這幾種壓縮方式瀏覽器都能解壓,當(dāng)服務(wù)器接收到請求后,知道瀏覽器支持的壓縮方式,服務(wù)器就會自動識別其中一種進(jìn)行壓縮并且告訴瀏覽器自己用了哪個方式壓縮,瀏覽器知道后就知道用哪種對應(yīng)方式解壓了


根據(jù)拓展名限制一下支持的幾鐘壓縮類型
defaultConfig.js

壓縮方法 compress,js
//壓縮的方法
/**rs 肯定需要,要知道自己需要壓縮什么 客戶端(瀏覽器支持哪幾種壓縮類型),
* req 客戶端再requestHeader中聲明的
* res 壓縮完成之后,需要告訴瀏覽器使用哪種壓縮類型壓縮,方便瀏覽器用對應(yīng)方式進(jìn)行解壓
* */
const {
createGzip,
CreateDeflate
} = require('zlib')
module.exports = (rs, req, res) => {
const acceptEncoding = req.headers['accept-encoding'];
/* 有兩種情況不能壓縮
1.瀏覽器已經(jīng)聲明不支持任何壓縮方式,拿不到這個信息
2.拿到的東西里面沒有服務(wù)器支持
*/
if (!acceptEncoding || !acceptEncoding.match(/\b(gzip|deflate)/)) {
return rs
} else if (acceptEncoding.match(/\bgzip\b/)) {
{
res.setHeader('Content-Encoding', 'gzip')
return rs.pipe(createGzip())
}
}else if (acceptEncoding.match(/\bdeflate\b/)) {
{
res.setHeader('Content-Encoding', 'deflate')
return rs.pipe(createGzip())
}
}
}
route.js 引用compress

運行結(jié)果


如果把相關(guān)壓縮的代碼注釋掉


以上就是Node4-5靜態(tài)資源服務(wù)器實戰(zhàn)_優(yōu)化壓縮文件的全部知識點內(nèi)容,感謝大家的閱讀和對腳本之家的支持。
相關(guān)文章
node.js通過axios實現(xiàn)網(wǎng)絡(luò)請求的方法
下面小編就為大家分享一篇node.js通過axios實現(xiàn)網(wǎng)絡(luò)請求的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-03-03
從零學(xué)習(xí)node.js之簡易的網(wǎng)絡(luò)爬蟲(四)
簡單的爬蟲實現(xiàn)原理很簡單:發(fā)送http請求至目標(biāo)地址獲取HTML頁面數(shù)據(jù),然后從獲取來的頁面數(shù)據(jù)中提取需要的數(shù)據(jù)保存。下面這篇文章主要介紹了利用node.js實現(xiàn)簡易的網(wǎng)絡(luò)爬蟲的相關(guān)資料,需要的朋友可以參考下。2017-02-02
NodeJS 將文件夾按照存放路徑變成一個對應(yīng)的JSON的方法
這篇文章主要介紹了NodeJS 將文件夾按照存放路徑變成一個對應(yīng)的JSON的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-10-10
async/await與promise(nodejs中的異步操作問題)
這篇文章主要介紹了async/await與promise(nodejs中的異步操作問題),非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-03-03
關(guān)于npm install過程失敗的幾種處理方式
這篇文章主要介紹了關(guān)于npm install過程失敗的幾種處理方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06
Node.js中Bootstrap-table的兩種分頁的實現(xiàn)方法
這篇文章主要介紹了Node.js中Bootstrap-table的兩種分頁的使用方法,需要的朋友可以參考下2017-09-09
詳解Node.js利用node-git-server快速搭建git服務(wù)器
本篇文章主要介紹了詳解Node.js利用node-git-server快速搭建git服務(wù)器,非常具有實用價值,需要的朋友可以參考下2017-09-09
利用node+koa+axios實現(xiàn)圖片上傳和回顯功能
這篇文章為大家詳細(xì)介紹了如何利用node+koa+axios實現(xiàn)圖片上傳和回顯功能,主要實現(xiàn)簡單的圖片上傳和靜態(tài)內(nèi)容的訪問,感興趣的可以了解一下2022-05-05

