background image

                     

  

HTTP1.1 协议支持页面压缩传送,也就是说服务器把一个页面压缩传送到

客户端,然后在客户端将页面解压缩再显示给客户。在服务器端有两种传输方式
一种是页面事先已经压缩好了,传送时只要将压缩页面传送到客户端就行,这
种适用于静态网页多的情况,但是对于大多数站点,动态页面比较多,这种方
法不太适合,因为很多传到客户端的页面其实是没有的,是服务器接到客户端
用户请求动态产生的,所以就要求每生成一个动态页面都要在传到客户端以前
先打包压缩。从

PHP 的 4.0.4 版以后,可以在 php.ini 文件中增加一行配置

“output_handler = ob_gzhandler”,这样每个动态生成的页面在传送到客
户端之前都会进行压缩,但是根据

PHP 官方站点的说明,这个参数不能与

“zlib.output_compression = on”参数同时使用,因为容易引起 PHP 工作不
正常,另外它只能压缩

PHP 程序的动态生成的页面,对于大量的静态页面尤其

是图像文件就不行了。但是

mod_gzip 模块为 Apahe 提供了将静态页面在传给

客户端以前先压缩的功能

,它的压缩比最大能到 10

 

,一般情况下可以到

3,也

就是说网站的传输速率一下提高了三倍多。要使用

mod_gzip 还要对 Apache

进行相应的配置,需要在

httpd.conf 文件中加入一些参数:

mod_gzip_on Yes(模块是否生效)

mod_gzip_minimum_file_size 1002(最小压缩文件大小)  

mod_gzip_maximum_file_size 0(最大压缩文件大小,0 表示没有限制) 

mod_gzip_maximum_inmem_size 60000(最大可占用内存)  

mod_gzip_item_include   file   "..gif102SINA>DOUBLE_QUOTATION 

(以

gif 结尾的文件要压缩传送)  

mod_gzip_item_include file ".txt102SINA>DOUBLE_QUOTATION 

mod_gzip_item_include file ".html102SINA>DOUBLE_QUOTATION 

mod_gzip_item_exclude file ".css102SINA>DOUBLE_QUOTATION 

  

1.3. 文件缓存

  这种方法通常是针对

PHP、PERL 等 CGI 程序而言的,因为这些程序有一个

共同的特征就是接到用户的请求后不是马上将结果返回给用户,而是经过解释
器解释执行后将执行结果返回给客户,这期间通常都要涉及到数据库的访问。这
样就会出现一个问题,当两个用户访问同一个页面时,系统将分别对两个请求
进行操作,但事实上这两个操作可能是一模一样的,这样无形当中增加了系统
的负担。所以通常的解决办法是在系统内存中开辟出一段空间,当用户第一次访
问页面后将执行结果存放在该内存中,当有用户再一次访问该页面时,系统就
将页面直接从内存中调出而不需要重新解释执行,这段内存空间就叫缓存。目前
流行的缓存管理程序是

Zend Technologies 公司的 Zend Cache。

娇滴滴假发

                                                               http://www.qddcn.com