这两天在做项目优化,注意到webpack有一个compression-webpack-plugin
插件,可以打包成gzip格式部署到服务器,了解到了GZIP,其实GZIP有很多点,这里我们只讨论前端范围内GZIP的应用。
什么是GZIP ?
GZIP是网站压缩加速的一种技术,GZIP最早由Jean-loup Gailly和Mark Adler创建,用于UNIX系统的文件压缩。我们在Linux中经常会用到后缀为.gz的文件,它们就是GZIP格式的。现今已经成为Internet 上使用非常普遍的一种数据压缩格式,或者说一种文件格式。有兴趣了解GZIP实现原理的可以移步https://zhuanlan.zhihu.com/p/24764131,
简单的说就是: 通过算法,在一个文本文件中找出一些重复出现的字符串,临时替换他们,从而使整个文件变小,根据这个原理,文件中代码的重复率越高,压缩的效率也就越高,使用Gzip 的收益也就越大,反之亦然。
GZIP优点:
减少文件大小。gzip 压缩比例在 3 到 10 倍左右,可以大大节省服务器的网络带宽,而在实际应用中,并不是对所有文件进行压缩,通常只是压缩静态文件。减少文件大小有两个明显的好处,一是可以减少存储空间,而是通过网络传输文件时,可以减少传输的时间,对于带宽较低的服务器是一种利好,开启后可以加快我们网站的打开速度,原理是经过服务器压缩,客户端浏览器快速解压的原理,可以大大减少了网站的流量。
GZIP缺点:
占用了一些服务区和客户端的CPU ,有可能操作失误,会造成网站无法访问,有可能蜘蛛无法进行爬行,造成收录不佳,谷歌可以完美的支持 GZip 压缩,百度支持的并不太好;
总结:
目前的带宽一般都充足了,没有必要进行压缩,有些压缩过的文件以及图片,展示出来的不是很清楚,这就是缺点,想要是有效的访问速度,可以采用CDN 加速或者购买更高配置服务和带宽,完美解决访问速度慢的问题。