Spring MVC参数处理--gzip和deflate的几点区别

今天在获取HTTP报文头的Accept-Encoding时,在控制台蹦出个gzip和deflate,有些陌生,只是知道这是两种压缩算法。那么它们到底有什么不同呢?这里转载一位技术人员的文章,做一下详解。

我们在配置网站GZip压缩的时候,会发现有两个模块可以设置的,一个是GZip模块的参数配置,另一个是Deflate模块的参数配置,他们的设置方法是一样的。刚开始时我不太明白,这两地方有什么不同?网站开启GZip压缩要设置GZip模块还是Deflate模块?今天通过参考了相关的资料,明白了他们之间的几点区别。

gzip和deflate

HTTP定义了一种机制,一个Web客户机和Web服务器同意一压缩方案可以用来发送内容。这是使用接受编码和内容编码标头完成。有两种常用的HTTP压缩:DEFLATE和GZIP。

DEFLATE是一个无专利的压缩算法,它可以实现无损数据压缩,有众多开源的实现算法。

GZIP是使用DEFLATE进行压缩数据的另一个压缩库。

gzip和deflate的几点区别(以Apache服务器为例)

如下是某些网友的意见:

Apache服务器通过mod_gzip和mod_deflate这两个地方来开启网站的GZip压缩,不管使用mod_gzip 还是mod_deflate,此处返回的信息都一样。因为它们都是实现的gzip压缩方式。这里主要说说它们之间的几点区别。

第一、Apache Web服务器版本差异

Apache 1.x系列没有内建网页压缩技术,所以才去用额外的第三方mod_gzip 模块来执行压缩。而Apache 2.x官方在开发的时候,就把网页压缩考虑进去,内建了mod_deflate 这个模块,用以取代mod_gzip。虽然两者都是使用的Gzip压缩算法,它们的运作原理是类似的。

第二、压缩质量

mod_deflate压缩速度略快而mod_gzip 的压缩比略高。一般默认情况下,mod_gzip 会比mod_deflate 多出4%~6%的压缩量。

第三、对服务器资源的占用

一般来说mod_gzip 对服务器CPU的占用要高一些。mod_deflate 是专门为确保服务器的性能而使用的一个压缩模块,mod_deflate 需要较少的资源来压缩文件。这意味着在高流量的服务器,使用mod_deflate 可能会比mod_gzip 加载速度更快。

简而言之,如果你的网站,每天不到1000独立访客,想要加快网页的加载速度,就使用mod_gzip。虽然会额外耗费一些服务器资源, 但也是值得的。如果你的网站每天超过1000独立访客,并且使用的是共享的虚拟主机,所分配系统资源有限的话,使用mod_deflate 将会是更好的选择。

原文传送门~

Spring MVC参数处理--gzip和deflate的几点区别_第1张图片

你可能感兴趣的:(日常学习日记)