标点符(钱魏 Way)

使用Gzip压缩网页

gzipGNU zip的缩写,它是一个GNU自由软件的文件压缩程序,也经常用来表示gzip这种文件格式。

HTTP/1.1协议允许客户端可以选择要求从服务器下载压缩内容,这个标准本身定义了两种压缩方法:“gzip”(内容用gzip数据流进行封装)以及“deflate”(内容是原始格式、没有数据头的DEFLATE数据流)。许多HTTP客户端库以及绝大多数当今的浏览器都支持这两种格式。在用户浏览器发送请求的HTTP头中,  带有“Accept-Encoding: gzip, deflate”参数则表明支持gzip和deflate两种压缩算法。

gzip命令的常用选项

-c,–stdout 将解压缩的内容输出到标准输出,原文件保持不变

-d,–decompress 解压缩

-f,–force 强制覆盖旧文件

-l,–list 列出压缩包内储存的原始文件的信息(如,解压后的名字、压缩率等)

-n,–no-name 压缩时不保存原始文件的文件名和时间戳,解压缩时不恢复原始文件的文件名和时间戳(此时,解出来的文件,其文件名为压缩包的文件名)

-N,–name 压缩时保存原始文件的文件名和时间戳,解压缩时恢复原始文件的文件名和时间戳

-q,–quiet 抑制所有警告信息

-r,–recursive 递归

-t,–test 测试压缩文件完整性

-v,–verbose 冗余模式(即显示每一步的执行内容)

-1、-2、…、-9 压缩率依次增大,速度依次减慢,默认为-6

使用Gzip压缩时的一些注意事项:

  1. Gzip不仅可以对HTML、PHP等文件进行压缩,对CSS,JS等文件同样也可以;
  2. Gzip压缩会增加服务器的负载;
  3. 不要使用Gzip对非文本(图片,视频,音频等)文件进行压缩;
  4. 有选择性的使用Gzip压缩(对文本代码较多的页面进行压缩);
  5. 并不是最高的压缩率,压缩的文件就最小;
    高压缩率同时意味着高服务器负载;
    建议把压缩率设为5~8;
  6. IIS,Apache1.3,Apache2.0+启用Gizp,配置方法是不同的;
  7. 未开启Gizp压缩模块的虚拟主机(如Godaddy),只要加载了Zlib库,同样可以实现;

如果你的服务器不支持HTTP压缩,但支持PHP,那么下面的代码就可能对你很有用,下面的代码会自动压缩文件并给浏览器发送缓存设置。

上面的PHP文件下载:http://www.box.net/shared/e5vvdtg1no

码字很辛苦,转载请注明来自标点符《使用Gzip压缩网页》

评论