IIS6开启步骤:1.添加Gzip的Web服务扩展并设置为有效,gzip的DLL在(%windir%/system32/inetsrv/gzip.dll)2.IIS 管理器 > 网站 > 属性 > 服务选项卡 > HTTP压缩,根据需要设置,我把两个都勾上,对动态文件也压缩。3.此时重启IIS,压缩就生效了。但是默认设置压缩的文件格式太少,可以进一步设置。4.修改 MetaBase.xml,建议先备份。找到 Location ="/LM/W3SVC/Filters/Compression/gzip"HcDynamicCompressionLevel ,设置压缩率,取值0~10,0不压缩,10最高压缩率HcFileExtensions,需要压缩的静态文件扩展名,默认只有htm,html,txt,可以把js,css添加进去。建议按原来的格式,用换行作为分隔HcScriptFileExtensions,需要压缩的动态文件扩展名在这下面有 Location ="/LM/W3SVC/Filters/Compression/Parameters"一个有用的设置是HcMinFileSizeForComp,小于该大小的文件不压缩。5.iisreset -stop 停止IIS,保存MetaBase.xml6.iisreset -start 启动IIS基本上Gzip就开启了。可以访问这里检测:http://www.pipeboost.com/report.asp另:上面的检测地址是一个叫pipeboost的软件的测试地址,这个软件可以很直观的设置IIS的Compression,并且可以缓存。可以针对单个站点设置是否启用压缩等等,非常好用!可惜就是太贵了,1499刀!杀人哦~~~有兴趣可以去下载30天试用版http://www.pipeboost.com/trial.asp
Gzip压缩传输能更加有效节约带宽流量。他先把文本压缩为.gz然后传输给浏览器,最后由浏览器负责解压缩呈现给用户。
老版本的浏览器可能不能显示,但是现在大多数浏览器都能显示。
启用Gzip传输首先要求PHP4.0.5以后版本。
方法1:
在.htaccess中加入
php_flag zlib.output_compression on
php_value zlib.output_compression_level 2
方法2:
在php脑袋顶上加入
ob_start(”ob_gzhandler”);
这两个方法都能达到压缩传输的效果。
这里检查你的网站是否是压缩过的
另外如何GZIP压缩HTML呢?
这个很简单:首先把HTML做成PHP,然后在.htaccess中重写html就可以了。
---------------------------------网上找到的另一种方法-------------------------
http1.1支持gzip编码的数据,所以,通过GZIP来实现页面压缩。在PHP中,我所知道的有两种方法使用GZIP,一种是PHP自带的,不过,要你所用的服务器支持才行!还有一种,呵呵,从网上搜索来的,在这儿就献给大家了。<?php 使用方法: ------------Start of file----------
ob_start();//打开输出缓冲
ob_implicit_flush(0);//
//*****************************************************************//
//函数名:canGzip()
//作用:检查客户浏览器是否支持gzip,x-gzip编码
//参数:
//返回值:支持的编码类型"gzip", "x-gzip", 返回false代表不支持
//*****************************************************************//
function canGzip()
{
//if (headers_sent() || connection_status)
//return false;
if (strpos('King'.$_SERVER["HTTP_ACCEPT_ENCODING"], 'gzip') !== false)
return "gzip";
if (strpos('King'.$_SERVER["HTTP_ACCEPT_ENCODING"], 'x-gzip') !== false)
return "x-gzip";
return false;
}
//*****************************************************************//
//函数名:doGzipOut($level, $debug)
//作用:对输出缓冲的数据进行压缩并输出
//参数:$level代表压缩级别, 0 = 不压缩, 9 = 最大压缩率
// $debug代表是否输出调试信息, 1 = 输出, 0 = 不输出
//返回值:
//*****************************************************************//
function doGzipOut($level = 1, $debug = 0)
{
$ENCODING = canGzip();
if ($ENCODING)
{
echo "n<!-- Use compress $ENCODING -->n";
$contents = ob_get_contents();
ob_end_clean();
if ($debug)
{
$s = "<p>Not compress length: ".strlen($contents);
$s .= "<br/>Compressed length: ".strlen(gzcompress($contents,$level));
$contents .= $s;
}
header("Content-Encoding: $ENCODING");
echo "x1fx8bx08x00x00x00x00x00"; //???
$size = strlen($contents);
$crc = crc32($contents);
$contents = gzcompress($contents, $level);
$contents = substr($contents, 0, strlen($contents) - 4); //???
echo $contents;
echo pack('V',$crc);
echo pack('V',$size);
exit;
}
else
{
ob_end_flush();
exit();
}
}
?>
|< ?
| include('gzipOut.php');
|? >
|<HTML>
|... the page ...
|</HTML>
|< ?
| echo "............"
|
| doGzipout();
|? >
-------------End of file-----------