mod_gzip和mod_deflate的区别

发布于 2012-05-01 作者 [重庆SEO]

更新于 2015-10-17

mod_gzip和mod_deflate相同的地方是都可以开启GZIP压缩

为什么使用Gzip Web压缩?

Gzip是一种流行的文件压缩算法,现在的应用十分广泛,尤其是在Linux平台。

当应用Gzip压缩到一个纯文本文件时,效果是非常明显的,大约可以减少70%以上的文件大小。这取决于文件中的内容。

利用Apache中的gzip模块,我们可以使用Gzip压缩算法来对Apache服务器发布的网页内容进行压缩后再传输到客户端浏览器。这样经过压缩后实际上降低了网络传输的字节数,最明显的好处就是可以加快网页加载的速度。

mod_gzip用法示例

<IfModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</IfModule> 

mod_deflate用法示例

<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css text/javascript application/javascript
</IfModule>

mod_gzip和mod_deflate的主要区别是什么?使用哪个更好呢?

首先一个区别是安装它们的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_deflate?第三个区别是对服务器资源的占用。一般来说mod_gzip 对服务器CPU的占用要高一些。mod_deflate 是专门为确保服务器的性能而使用的一个压缩模块,mod_deflate 需要较少的资源来压缩文件。这意味着在高流量的服务器,使用mod_deflate 可能会比mod_gzip 加载速度更快。

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

另外,从Apache 2.0.45开始,mod_deflate 可使用DeflateCompressionLevel 指令来设置压缩级别。该指令的值可为1至(压缩速度最快,最低的压缩质量)9(最慢的压缩速度,压缩率最高)之间的整数,其默认值为6(压缩速度和压缩质量较为平衡的值)。这个简单的变化更是使得mod_deflate 可以轻松媲美mod_gzip 的压缩。

总的来说,服务器条件允许的情况下,重庆SEO推荐mod_deflate,毕竟是官方的新产物,代码看上去也美一些。