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
;