如何开启gzip压缩
发布网友
发布时间:2022-05-07 15:09
我来回答
共1个回答
热心网友
时间:2022-04-27 04:34
gzip是HTML压缩算法的一种,HTTP压缩是在Web服务器和浏览器间传输压缩文本内容的方法。HTTP压缩工作原理是:
Web服务器接收到浏览器的HTTP请求后,检查浏览器是否支持HTTP压缩;
如果浏览器支持HTTP压缩,Web服务器检查请求文件的后缀名;
如果请求文件是HTML、CSS等静态文件,Web服务器到压缩缓冲目录中检查是否已经存在请求文件的最新压缩文件;
如果请求文件的压缩文件不存在,Web服务器向浏览器返回未压缩的请求文件,并在压缩缓冲目录中存放请求文件的压缩文件;
如果请求文件的最新压缩文件已经存在,则直接返回请求文件的压缩文件;
如果请求文件是ASPX等动态文件,Web服务器动态压缩内容并返回浏览器,压缩内容不存放到压缩缓存目录中。
怎么做gzip压缩呢?大致有:在Contol Pannel开启gzip、开启http服务器gzip、利用php本身的gzip。
IE6和火狐都支持客户端gzip,在网页传输之前,先使用gzip压缩再传输给客户端,客户端接收之后由浏览器解压显示。
IIS6已经内建了gzip压缩的支持。在IIS6上做gzip压缩的方法是:
如果你需要压缩静态文件,可以先在硬盘上新建一个目录,并给它“IUSR_机器名”这个用户设置写权限。如果压缩动态文件就可以不用这样的,因为它的页面是每次都动态生成的(页面动态生成),压缩完就放弃。然后在IIS管理器中,“网站”上面右键-属性,不是下面的某个站点,而是整个网站。进入“服务”标签,选上启用动态内容压缩,静态内容压缩。给gzip的临时目录空间不要太大了200MB左右就够了。
然后选中网站下面那个服务器扩展,新建一个服务器扩展。可以用任何你想用的名字,下面的添加文件的路径是:
c:\windows\system32\inetsrv\gzip.dll,然后启用这个扩展。
这时候静态内容是可以压缩的,但是对于动态内容,aspx文件却不在压缩范围内。我们只能去修改它的配置文件了。
在c:\windows\system32\inetsrv\下面有个MetaBase.xml文件,可以用记事本打开,找到IIsCompressionScheme,有三个相同名字的段,
分别是
<IIsCompressionScheme Location =“/LM/W3SVC/Filters/Compression/deflate”
<IIsCompressionScheme Location =“/LM/W3SVC/Filters/Compression/gzip”
<IIsCompressionSchemes Location =“/LM/W3SVC/Filters/Compression/Parameters”
前两段有基本相同的参数,在这两段的参数HcScriptFileExtensions下面都加上一行aspx,如果你有其它的动态程序要压缩,也加在这里。HcDynamicCompressionLevel改成9,9是性价比最高的一个。
至此,怎么做gzip压缩的过程我们就都实现了,需要注意的是:网页启用了gzip压缩后网站打开速度通常可能不会有太明显的感觉(相对于浏览者),可以用一些特定的来检查你的网页是否压缩过了,以及压缩比和加快的速度。