我玩的应用:
   
  
 | 
	
 
本文介绍如何启用apache的gzip功能,啥叫gzip请查询相关wiki或者百度百科 
针对Apache2.0及之后的版本,Apache提供支持, 不过不叫gzip,而叫mod_deflate。 
在使用gzip压缩之前请确实是否已经启用apache的deflate和 headers两个模块。操作办法: 
修改 
#LoadModule headers_module modules/mod_headers.so#LoadModule deflate_module modules/mod_deflate.so为 
LoadModule headers_module modules/mod_headers.soLoadModule deflate_module modules/mod_deflate.so及去掉前面的# 
在httpd.conf中添加下面一段配置:- <IfModule mod_deflate.c>
 
 - <Location />
 
 - #Insert filter
 
 - SetOutputFilter DEFLATE
 
 - # Netscape 4.x has some problems…
 
 - BrowserMatch ^Mozilla/4 gzip-only-text/html
 
 - # Netscape 4.06-4.08 have some more problems
 
 - BrowserMatch ^Mozilla/4\.0[678] no-gzip
 
 - # MSIE masquerades as Netscape, but it is fine
 
 - # BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
 
 - # NOTE: Due to a bug in mod_setenvif up to Apache 2.0.59
 
 - # the above regex won’t work. You can use the following
 
 - # workaround to get the desired effect:
 
 - # BrowserMatch \bMSIE !no-gzip !gzip-only-text/html force-gzip
 
 - BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
 
  
- # Don’t compress images and other
 
 - #SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
 
 - #SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
 
 - #SetEnvIfNoCase Request_URI .(?:pdf|doc)$ no-gzip dont-vary
 
  
- AddOutputFilterByType DEFLATE text/html text/css image/gif image/jpeg image/png  application/x-javascript
 
 - # Make sure proxies don’t deliver the wrong content
 
 - Header append Vary User-Agent env=!dont-vary
 
  
- #DeflateFilterNote ratio ratio_info
 
 - #LogFormat '"%v %h %l %u %t “%r" %>s %b "%{Referer}i" "%{User-Agent}i"" (%{ratio}n)' deflate
 
 - #CustomLog logs/deflate_log deflate
 
 - </Location>
 
 - </IfModule>
 
  复制代码 这样整个配置就算完成,重启apache就可以看到效果,够简单吧! 
关于apache 的mod_deflate的更多配置参数请参考apache的配置手册: 
http://www.phpchina.com/resource/manual/apache/mod/mod_deflate.html 
笔者以firebug为测试工具在启用gzip前后以jquery.-1.3.2-min.js为测试对象得到下面的测试结果: 
启用前: 
 
启用后: 
 
很明显的看到,jquery-1.3.2.min.js已经从55.9k压缩为19.3k,这个压缩比例应该说是比较给力的。而且我们知道jq-min的代码本身已经做了压缩,所以如果是我们平时写的一些html代码的话,整个压缩程度更高,在笔者测试过程中,一般对html可以压缩为原大小的30%甚至更小。这里就不贴图了。 
下面一段文字来至互联网: 
gzip是一种数据格式,默认且目前仅使用deflate算法压缩data部分; 
deflate是一种压缩算法,是huffman编码的一种加强。 
deflate与gzip解压的代码几乎相同,可以合成一块代码。 
区别仅有: 
deflate使用inflateInit(),而gzip使用inflateInit2()进行初始化,比  inflateInit()多一个参数: -MAX_WBITS,表示处理raw deflate数据。因为gzip数据中的zlib压缩数据块没有zlib  header的两个字节。使用inflateInit2时要求zlib库忽略zlib  header。在zlib手册中要求windowBits为8..15,但是实际上其它范围的数据有特殊作用,见zlib.h中的注释,如负数表示raw  deflate。 
Apache的deflate变种可能也没有zlib header,需要添加假头后处理。即MS的错误deflate (raw  deflate).zlib头第1字节一般是0×78,  第2字节与第一字节合起来的双字节应能被31整除,详见rfc1950。例如Firefox的zlib假头为0×7801,python  zlib.compress()结果头部为0x789c。 
deflate 是最基础的算法,gzip 在 deflate 的 raw data  前增加了 10 个字节的 gzheader,尾部添加了 8 个字节的校验字节(可选 crc32 和 adler32)  和长度标识字节。 
 
from:http://go.cxweb.com.cn/0tlcv 
 |   
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册 
 
 
 
x
 
 
 
 
 |