LAMP之路

不积跬步,无以至千里!

Gzip压缩内容,以提高页面载入速度

2012-10-18 一抹阳光 优化运营

Gzip是一种压缩格式,对于文本的压缩比率是很高的。
要利用Gzip压缩,需要服务器和客户端都支持gzip压缩才行。客户端浏览器先通知服务器,它可以接受gzip压缩格式的内容,然后服务器在返回内容的时候,会指出是压缩格式的内容,然后浏览器就会在接受到内容后做解压缩的动作,然后渲染。

比如本站的某个页面,html文件本身大小是35.4K,gzip压缩后的大小是9.7K。压缩比率很大,对于下载的时间大大缩短。

在Apache服务上,如果用的是Apache1.3,那么就要用到mod_gzip模块,如果用的是Apache2.x,那么就是用的mod_deflate模块。前者几乎已经没有什么人在用了,那么就说说后者。

使用mod_deflate模块的时候,修改.htaccess文件,添加下面的代码。
AddOutputFilterByType DEFLATE text/html text/css application/javascript

从代码中可以看到,我对html文件,css文件,js文件,都进行了gzip压缩,这三种都是文本文件,压缩比例都在两到三倍间。

在使用Gzip压缩的时候,需要注意一点,就是代理服务器缓存的问题。而实际使用的时候,Apache的gzip模块会自动处理,添加一个文件头:Vary: Accept-Encoding
其实际的含义就是要求代理服务器根据是否压缩,保存不同的内容。