Gzip
Gzip就是 GUN zip,由 Jean-loup Gailly 和 Mark Adler 创建,用于 UNIX/ Linux 系统的文件压缩。我们在 Linux 中经常会用到后缀为.gz 的文件,它们就是 gzip 格式的。现今已经成为 Internet 上使用非常普遍的一种数据压缩格式,或者说一种文件格式。HTTP 协议上的 gzip 编码是一种用来改进 Web 应用程序性能的技术。大流量的 Web 站点常常使用gzip 压缩技术来让用户感受更快的速度。
http传输 gzip的压缩效果[ ]
经过测试,基本可以压缩70%以上,甚至80%
在这里可以测试是否启用gzip以及压缩效率:网页gzip压缩检测
HTTP压缩概述
HTTP压缩是在Web服务器和浏览器间传输压缩文本内容的方法。HTTP压缩采用通用的压缩算法如gzip等压缩HTML、JavaScript或 CSS文件。压缩的最大好处就是降低了网络传输的数据量,从而提高客户端浏览器的访问速度。当然,同时也会增加一点点服务器的负担。Gzip是比较常见的一种HTTP 压缩算法。
现代的浏览器IE6和Firefox都支持客户端Gzip,也就是说,在服务器上的网页,传输之前,先使用Gzip压缩再传输给客户端,客户端接收之后由浏览器解压显示,这样虽然稍微占用了一些服务器和客户端的CPU,但是换来的是更高的带宽利用率。对于纯文本来讲,压缩率是相当可观的。如果每个用户节约50%的带宽,那么你租用来的那点带宽就可以服务多一倍的客户了。
- Header信息介绍:Content-Location:表示内容定位,指定包含于请求或响应中的资源定位(URI);
- Content-Length:表示内容长度,指定包含于请求或响应中数据的字节长度;
- Content-Type:表示内容类型,指定标明发送或者接收的文档的MIME类型;Accept-Ranges:表示请求范围的度量单位;
- Date:表示当前的GMT时间;Last-Modified:表示最后修改时间;Server:表示服务器名字;
- X-Powered-By:表示通过的技术;
- Etag:表示文件标识符;
- Connection:表示否保存socket连接;
如何启用gzip[ ]
apache 2中启用Gzip[ ]
服务器使用的是 Apache 2,服务器是采用 mod_deflate 模块来实现 gzip。
其实我们在 httpd.conf或.htaccess 中加入以下代码可以压缩 HTML, PHP, JS, CSS, XML 后缀的文件。
<ifmodule mod_deflate.c> AddOutputFilterByType DEFLATE text/html text/css text/plain text/xml application/x-httpd-php application/x-javascript </ifmodule>
Apache 1中启用Gzip[ ]
如果服务器 Apache 版本不是 2.0 而是 1.3,就可以使用 ob_gzhandler 函数进行压缩(需要 PHP 含有 zlib 库,一般有)。如果你的程序已经内置了对gzip的支持(例如Discuz),只需要在后台启用Gzip即可。如果你的程序不支持,可以在php.ini中加入下面的语句启用对php文件的压缩:
output_buffering = Off output_handler = zlib.output_compression = On
如果php文件不多,也可以在php文件中加入如下语句启用gzip
在文件的首行加入
<?php If(Extension_Loaded(’zlib’)){ Ob_Start(’ob_gzhandler’); } ?>
最后在文件的末行加入
<?php If(Extension_Loaded(’zlib’)) { Ob_End_Flush(); } ?>
Apache 1中给html css文件启用gzip[ ]
有三种方法:
- 让apache将html文件当作php文件处理即可。
在.htaccess文件中加入下面的语句即可:
AddHandler x-httpd-php .html .htm
如果要压缩CSS,在语句中加入即可。
- 将静态页面的后缀修改为php,并且在文件中加入:
在文件的首行加入
<?php If(Extension_Loaded(’zlib’)){ Ob_Start(’ob_gzhandler’); } ?>
最后在文件的末行加入
<?php If(Extension_Loaded(’zlib’)) { Ob_End_Flush(); } ?>
- 建立一个php文件,把所有请求都定向到这个文件,然后用这个文件载入要访问的内容。
相关条目[ ]