瀏覽器控制臺看一下RequestHeader有一個Accept-Encoding,而RespondHeaders中也會有一個Content-Encoding和他進行對應.
Accept-Encoding當我們的瀏覽器發起一個文件的請求時告訴服務器支持哪幾種壓縮方式,也就是服務器用這幾種壓縮方式瀏覽器都能解壓,當服務器接收到請求后,知道瀏覽器支持的壓縮方式,服務器就會自動識別其中一種進行壓縮并且告訴瀏覽器自己用了哪個方式壓縮,瀏覽器知道后就知道用哪種對應方式解壓了
 
 
根據拓展名限制一下支持的幾鐘壓縮類型
defaultConfig.js

壓縮方法 compress,js
//壓縮的方法/**rs 肯定需要,要知道自己需要壓縮什么  客戶端(瀏覽器支持哪幾種壓縮類型), * req 客戶端再requestHeader中聲明的 * res 壓縮完成之后,需要告訴瀏覽器使用哪種壓縮類型壓縮,方便瀏覽器用對應方式進行解壓 * */const {  createGzip,  CreateDeflate} = require('zlib')module.exports = (rs, req, res) => {  const acceptEncoding = req.headers['accept-encoding'];  /* 有兩種情況不能壓縮  1.瀏覽器已經聲明不支持任何壓縮方式,拿不到這個信息  2.拿到的東西里面沒有服務器支持  */  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

運行結果


如果把相關壓縮的代碼注釋掉


以上就是Node4-5靜態資源服務器實戰_優化壓縮文件的全部知識點內容,感謝大家的閱讀和對武林網的支持。
新聞熱點
疑難解答