gzip
屬於在線壓縮,在資源經過http
發送報文給客戶端的過程當中,進行壓縮,能夠減小客戶端帶寬佔用,減小文件傳輸大小。javascript
通常寫在server
或者location
都可;css
server {
listen 6002;
server_name **.234.133.**;
gzip on;
gzip_proxied any;
gzip_types
text/css
text/javascript
text/xml
text/plain
image/x-icon
application/javascript
application/x-javascript
application/json;
}
複製代碼
不開啓gzip:前端
這個時候 298KB
左右;java
開啓gzip:webpack
開啓以後,Content-Encoding: gzip; ETag: W/"~~~";
這裏的ETag
中的 W\
就是區分是不是在線寫入壓縮的標識;nginx
開啓gzip
,298KB
能夠減小到 104KB
,效率仍是不錯的; 只是在線gzip
比較佔用CPU
,相比gzip_static
仍是不太好。web
在前端代碼打包構建bundle
的時候,通常都有根據必定的算法自動壓縮代碼成gz
文件的webpack
插件;算法
當咱們不在 nginx
開啓 gzip_static
的時候,發現生產的gz
文件並無被運行;json
gzip_static
是會自動執行gz
文件的,這樣的就避免了經過gzip
自動壓縮;app
好比上面圖片的資源:
咱們上面講到經過gzip
自動壓縮是 104KB
,而咱們本身壓縮的是90KB
,全部若是運行了咱們本身的gz
文件,會更好。
gzip_static on;
複製代碼
ETag
裏面沒有
\W
, 就是使用的是咱們本身的
gz
文件的,比
gzip
自動壓縮的還減小了
10KB
;