開始接觸gzip壓縮是在工作中上傳lodash指令碼檔案到伺服器上。本來壓縮版的指令碼也有七十幾kb,但是筆者的同事說上傳到伺服器上只有二十多kb,筆者半信半疑,怎麼會有這麼大的差距,伺服器壓縮的幅度也太大了。後來網上找了很多資料,發現gzip確實能夠節省傳輸過程中很多的流量。
gzip是gnuzip的縮寫,是乙個gun自由軟體的檔案壓縮程式。剛開始用於unix系統的檔案壓縮。熟悉linux系統的讀者應該了解有一種檔案的字尾是.gz,這種檔案就是gzip格式的檔案。現在gzip已經成為網上使用非常普遍的一種資料壓縮格式。
首先瀏覽器發出乙個請求給伺服器,在請求頭上標明自己可以接收gzip格式的資料。
然後伺服器根據請求頭,將資料經過壓縮後返回給瀏覽器,同時在響應頭上標明返回的資料是gzip格式的資料。
最後瀏覽器將返回的資料解壓後渲染。
筆者模擬了乙個gzip資料請求:
可以看到request headers(請求頭)中有乙個accept-encoding屬性,裡面有乙個gzip,表示瀏覽器能夠接受的資料格式有:gzip、deflate、sdch和br。然後在response headers(響應頭)中有乙個content-encoding屬性,表示返回的資料格式的編碼,我們看到只有一種編碼,就是gzip。
減小網路傳輸的資料量,提高網頁響應速度。
經過在網上找了很多資料,找到目錄下的conf/server.xml檔案,將connector
進行如下改寫:
123但是。。。當筆者配置完後,滿心歡喜的開啟伺服器以為有效時,發現自己太天真了。很遺憾的是,指令碼並沒有被壓縮。我以為是伺服器沒有配置成功,又多次重啟,但是並沒有用,網上查了很多資料,也沒有解決。4567
89
nodejs中筆者常用的庫就是express,就用express作為demo。如果你的express的4.0以下的版本,只需要在**中新增以下**:
1在express 4.0以上的版本中不再整合gzip功能,需要單獨安裝中介軟體,先通過
npm i compression
安裝compression,然後在專案中引用:
12
var compress = require('compression');修改nginx安裝目錄下的conf/nginx.conf配置檔案,新增以下**:
1234567
891011
1213
#開啟gzipgzip on;
#壓縮閥值,小於1k不壓縮
#壓縮級別
gzip_comp_level 2;
#壓縮的檔案型別
gzip_vary off;
#ie6對gzip不怎麼友好,禁止ie6進行壓縮
gzip_disable "msie [1-6]\.";
網頁加速 開啟 gzip 伺服器端壓縮
標題裡提到的gzip,這和我們常見的.rar或.zip一樣,是一種壓縮格式。gzip壓縮的通常格式是.gz為字尾名的壓縮包,和.rar格式不一樣,是跨平台的,windows系統及linux系統都可以用,而且,壓縮率比.rar或.zip都高。詳細 關鍵是,他支援對網頁的壓縮,是目前internet上最...
Nginx伺服器的Gzip壓縮
gzip on off gzip buffers number size number為伺服器向系統申請快取空間的個數 size 指定每個快取空間的大小 size值可取系統記憶體頁一頁的大小。gzip comp level level gzip disable regex regex根據客戶端的瀏覽...
vue 進行 gzip壓縮和伺服器如何開啟gzip
使用vue cli生成的專案,會自動配好相關的設定。如下圖找到對應的檔案,productiongzip改為true,開啟gzip壓縮 找到下圖的檔案,這裡是gzip的配置 如下 webpackconfig plugins push newcompressionwebpackplugin 這裡是引數詳...