最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Node.js服務(wù)器開啟Gzip壓縮教程

 更新時間:2017年08月11日 08:45:11   作者:doterlin  
開啟網(wǎng)站的 gzip 壓縮功能,通??梢愿哌_(dá)70%,也就是說,如果你的網(wǎng)頁有30K,壓縮之后就變成9K, 對于大部分網(wǎng)站,顯然可以明顯提高瀏覽速度(注:需要瀏覽器支持)。

Gzip是什么

復(fù)制大神們的解釋吧:

GZIP最早由Jean-loup Gailly和Mark Adler創(chuàng)建,用于UNIX系統(tǒng)的文件壓縮。我們在Linux中經(jīng)常會用到后綴為.gz的文件,它們就是GZIP格式的?,F(xiàn)今已經(jīng)成為Internet 上使用非常普遍的一種數(shù)據(jù)壓縮格式,或者說一種文件格式。HTTP協(xié)議上的GZIP編碼是一種用來改進(jìn)WEB應(yīng)用程序性能的技術(shù)。大流量的WEB站點常常使用GZIP壓縮技術(shù)來讓用戶感受更快的速度。這一般是指WWW服務(wù)器中安裝的一個功能,當(dāng)有人來訪問這個服務(wù)器中的網(wǎng)站時,服務(wù)器中的這個功能就將網(wǎng)頁內(nèi)容壓縮后傳輸?shù)絹碓L的電腦瀏覽器中顯示出來.一般對純文本內(nèi)容可壓縮到原大小的40%.這樣傳輸就快了,效果就是你點擊網(wǎng)址后會很快的顯示出來.當(dāng)然這也會增加服務(wù)器的負(fù)載. 一般服務(wù)器中都安裝有這個功能模塊的.

Gzip壓縮率

舉個例子,通過webpack打包后的js文件比較大,雖然我們可以利用chunk功能將文件分開混淆打包,但是總體積還是不?。贿@時候看看利用gzip壓縮的效果:


啟用Gzip前


啟用Gzip后

對比其中三個文件前后壓縮大?。?/p>

文本類文件:

iview.min.js: 429kb -> 109kb,壓縮比74.6% base.min.js: 309kb -> 81.7kb,壓縮比73.56% style.min.css: 207kb -> 30.9kb,壓縮比85%

圖片:

圖片1: 63.2kb -> 63.2kb,壓縮比0%?

我們看到文本類文件的壓縮效果非常顯著,但是圖片體積沒變??匆幌挛谋绢惖膆ttp響應(yīng)頭是有g(shù)zip壓縮過:


而圖片的沒有:


這是因為一般對于圖片(png,jpg等)使用gzip的效果不好甚至恰得其反,所以一般都默認(rèn)對圖片不進(jìn)行g(shù)zip壓縮。

node.js啟用gzip

下面說一下node的express框架如何使用gzip:

1.安裝一個compression依賴:

npm install compression

2.調(diào)用:

var compression = require('compression')
var app = express();

//盡量在其他中間件前使用compression
app.use(compression());

基本的使用就是這樣就ok了,另外如果想只對某些請求使用此功能,可以使用它的過濾方法:

app.use(compression({filter: shouldCompress}))

function shouldCompress (req, res) {
 if (req.headers['x-no-compression']) {
  // 這里就過濾掉了請求頭包含'x-no-compression'
  return false
 }

 return compression.filter(req, res)
}

其他的功能請參考compression的文檔。

另外附上nginx的配置

#on為啟用,off為關(guān)閉
gzip on;

#設(shè)置允許壓縮的頁面最小字節(jié)數(shù),頁面字節(jié)數(shù)從header頭中的Content-Length中進(jìn)行獲取。默認(rèn)值是0,不管頁面多大都壓縮。建議設(shè)置成大于1k的字節(jié)數(shù),小于1k可能會越壓越大。
gzip_min_length 1k;

#獲取多少內(nèi)存用于緩存壓縮結(jié)果,‘4 16k'表示以16k*4為單位獲得
gzip_buffers 4 16k;

#gzip壓縮比(1~9),越小壓縮效果越差,但是越大處理越慢,所以一般取中間值
gzip_comp_level 5;

#對特定的MIME類型生效,其中'text/html'被系統(tǒng)強制啟用
gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php;

簡單解釋下參數(shù)

1) gzip

語法:gzip on/off
默認(rèn)值:off
作用域:http, server, location
說明:開啟或者關(guān)閉 gzip 模塊,這里使用 on 表示啟動

2) gzip_min_length

語法:gzip_min_length length
默認(rèn)值:gzip_min_length 0
作用域:http, server, location
說明:設(shè)置允許壓縮的頁面最小字節(jié)數(shù),頁面字節(jié)數(shù)從header頭中的Content-Length中進(jìn)行獲取。默認(rèn)值是0,不管頁面多大都壓縮。建議設(shè)置成大于1k的字節(jié)數(shù),小于1k可能會越壓越大。|

3) gzip_buffers

語法: gzip_buffers number size
默認(rèn)值: gzip_buffers 4 4k/8k
作用域: http, server, location
說明:設(shè)置系統(tǒng)獲取幾個單位的緩存用于存儲gzip的壓縮結(jié)果數(shù)據(jù)流。4 16k 代表以 16k 為單位,按照原始數(shù)據(jù)大小以 16k 為單位的4倍申請內(nèi)存。

4) gzip_comp_level

語法: gzip_comp_level 1..9
默認(rèn)值: gzip_comp_level 1
作用域: http, server, location
說明:gzip壓縮比,1 壓縮比最小處理速度最快,9 壓縮比最大但處理最慢(傳輸快但比較消耗cpu)。這里設(shè)置為 5。
5) gzip_types

語法: gzip_types mime-type [mime-type ...]
默認(rèn)值: gzip_types text/html
作用域: http, server, location
說明:匹配MIME類型進(jìn)行壓縮,(無論是否指定)"text/html" 類型總是會被壓縮的。這里設(shè)置為 text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php。

相關(guān)文章

  • 命令行批量截圖Node腳本示例代碼

    命令行批量截圖Node腳本示例代碼

    這篇文章主要給大家介紹了關(guān)于命令行批量截圖Node腳本的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01
  • nodejs個人博客開發(fā)第四步 數(shù)據(jù)模型

    nodejs個人博客開發(fā)第四步 數(shù)據(jù)模型

    這篇文章主要為大家詳細(xì)介紹了nodejs個人博客開發(fā)的數(shù)據(jù)模型,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • 詳解前端任務(wù)構(gòu)建利器Gulp.js使用指南

    詳解前端任務(wù)構(gòu)建利器Gulp.js使用指南

    這篇文章主要介紹了前端任務(wù)構(gòu)建利器Gulp.js使用指南,對Gulp.js感興趣的同學(xué),可以參考下
    2021-04-04
  • nodejs修復(fù)ipa處理過的png圖片

    nodejs修復(fù)ipa處理過的png圖片

    ipa本身是一個zip文件改后綴后解壓縮就能看到應(yīng)用內(nèi)使用的資源文件,其中png圖片資源xcode打包的時候做了些手腳下面我們來看看如何修復(fù)這些問題
    2016-02-02
  • Node.js的進(jìn)程管理的深入理解

    Node.js的進(jìn)程管理的深入理解

    這篇文章主要介紹了Node.js的進(jìn)程管理的深入理解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • Node.js中sequelize時區(qū)的配置方法

    Node.js中sequelize時區(qū)的配置方法

    這篇文章主要給大家介紹了關(guān)于Node.js中sequelize時區(qū)的配置方法,文中先對時區(qū)的基礎(chǔ)概念進(jìn)行了簡單介紹,然后通過示例代碼詳細(xì)介紹了sequelize時區(qū)的配置方法,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-12-12
  • nodejs如何將高版本降為低版本

    nodejs如何將高版本降為低版本

    在遇到項目依賴低版本Node.js時,直接安裝低版本可能會遇到困難,本文提供了一種通過卸載當(dāng)前高版本Node.js并使用NVM(Node Version Manager)來管理和安裝低版本Node.js的方法,首先,需要卸載現(xiàn)有的Node.js環(huán)境并清理相關(guān)文件
    2024-10-10
  • Nuxt配合Node在實際生產(chǎn)中的應(yīng)用詳解

    Nuxt配合Node在實際生產(chǎn)中的應(yīng)用詳解

    這篇文章主要介紹了Nuxt配合Node在實際生產(chǎn)中的應(yīng)用詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • 如何使用 Node.js 實現(xiàn)一個上傳圖片接口

    如何使用 Node.js 實現(xiàn)一個上傳圖片接口

    本文介紹了如何使用Node.js和Express框架創(chuàng)建一個簡單的上傳圖片接口,首先,通過npm初始化項目并安裝必要的依賴,如express和multer,然后,在index.js文件中編寫上傳圖片的邏輯,并通過Postman測試接口,感興趣的朋友跟隨小編一起看看吧
    2025-02-02
  • 詳解如何在Node.js中使用中間件處理請求

    詳解如何在Node.js中使用中間件處理請求

    在Node.js中,處理中間件是處理HTTP請求和響應(yīng)的一個常見方式,甚至扮演著至關(guān)重要的角色,本文將介紹如何在Node.js中使用中間件來處理請求,感興趣的可以了解下
    2025-02-02

最新評論

鹤峰县| 舟曲县| 西昌市| 汝州市| 成都市| 化隆| 都昌县| 达州市| 墨竹工卡县| 迭部县| 阿拉善左旗| 大连市| 长沙县| 永清县| 泉州市| 浦江县| 永泰县| 武宁县| 雷州市| 高密市| 曲周县| 黄浦区| 河间市| 安国市| 神农架林区| 清水河县| 呼玛县| 搜索| 淮滨县| 开江县| 博爱县| 湘西| 澄迈县| 河津市| 广汉市| 黑龙江省| 永春县| 兰溪市| 崇明县| 嘉兴市| 湖北省|