数据传输中的压缩方法
网页响应速度往往是决定是否能留住用户的一个重要因素。试想用户发起一个请求后,等半天都看不到结果,是多么气愤:)
(是的,随着互联网技术进步,大家都越来越没耐心等待:P)
而影响网页响应速度的一个潜在重要点是数据量,几M的数据传输起来,必然是要几秒钟的。这时候我们必须要对数据进行压缩。
数据压缩,首先想到的是,原数据本身进行压缩,比较常见的是js和css的压缩,也就是说,我们引用的就是压缩后的js和css。
另外就是,数据传输过程中的压缩。服务器从数据库或者其他service拿到数据时,由服务器进行压缩后返回给浏览器,浏览器自行解压。
有人可能会问,浏览器还能自行解压?看看下面的图,Request Headers里面写了接受gzip形式哦。
image.png那现在的问题是,我们如何将数据压缩一下,整成gzip形式给到前端呢?
如果你用的是tomcat:
- 找到server.xml,进行编辑
-
找到你的port设置处,加上gzip相关设置命令(compression="on" compressionMinSize="500" compressableMimeType="text/plain"),如下:
tomcat中的设置
这些属性我就不多加解释,都可以百度到
如果你用的是nginx:
在http体里加上如下语句:
gzip on;
gzip_min_length 100k;
gzip_buffers 4 16k;
gzip_types application/x-javascript text/javascript application/javascript image/gif application/json;
gzip_comp_level 3;
gzip_vary on;
那现在我们看看设置后,返回的response是怎样的:
注意看response headerContent-Encoding是gzip
好啦,暂且介绍到这里,希望可以帮助到你