溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Node4-5靜態(tài)資源服務(wù)器實(shí)戰(zhàn)以及優(yōu)化壓縮文件實(shí)例內(nèi)容

發(fā)布時(shí)間:2020-08-27 09:22:48 來(lái)源:腳本之家 閱讀:142 作者:努力努力再努力 欄目:web開發(fā)

瀏覽器控制臺(tái)看一下RequestHeader有一個(gè)Accept-Encoding,而RespondHeaders中也會(huì)有一個(gè)Content-Encoding和他進(jìn)行對(duì)應(yīng).

Accept-Encoding當(dāng)我們的瀏覽器發(fā)起一個(gè)文件的請(qǐng)求時(shí)告訴服務(wù)器支持哪幾種壓縮方式,也就是服務(wù)器用這幾種壓縮方式瀏覽器都能解壓,當(dāng)服務(wù)器接收到請(qǐng)求后,知道瀏覽器支持的壓縮方式,服務(wù)器就會(huì)自動(dòng)識(shí)別其中一種進(jìn)行壓縮并且告訴瀏覽器自己用了哪個(gè)方式壓縮,瀏覽器知道后就知道用哪種對(duì)應(yīng)方式解壓了

 Node4-5靜態(tài)資源服務(wù)器實(shí)戰(zhàn)以及優(yōu)化壓縮文件實(shí)例內(nèi)容

 Node4-5靜態(tài)資源服務(wù)器實(shí)戰(zhàn)以及優(yōu)化壓縮文件實(shí)例內(nèi)容

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

defaultConfig.js

Node4-5靜態(tài)資源服務(wù)器實(shí)戰(zhàn)以及優(yōu)化壓縮文件實(shí)例內(nèi)容

壓縮方法 compress,js

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

Node4-5靜態(tài)資源服務(wù)器實(shí)戰(zhàn)以及優(yōu)化壓縮文件實(shí)例內(nèi)容

運(yùn)行結(jié)果

Node4-5靜態(tài)資源服務(wù)器實(shí)戰(zhàn)以及優(yōu)化壓縮文件實(shí)例內(nèi)容

Node4-5靜態(tài)資源服務(wù)器實(shí)戰(zhàn)以及優(yōu)化壓縮文件實(shí)例內(nèi)容

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

Node4-5靜態(tài)資源服務(wù)器實(shí)戰(zhàn)以及優(yōu)化壓縮文件實(shí)例內(nèi)容

Node4-5靜態(tài)資源服務(wù)器實(shí)戰(zhàn)以及優(yōu)化壓縮文件實(shí)例內(nèi)容

 

以上就是Node4-5靜態(tài)資源服務(wù)器實(shí)戰(zhàn)_優(yōu)化壓縮文件的全部知識(shí)點(diǎn)內(nèi)容,感謝大家的閱讀和對(duì)億速云的支持。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI