如何用C调用gzip实现自动压缩

如何用C调用gzip实现自动压缩,第1张

命令: gzip语法:gzip [选项] 压缩(解压缩)的文件名 -c 将输出写到标准输出上,并保留原有文件。 -d 将压缩文件解压睁数。 -l 对每个压缩文件,显示下列字段: (裂亩1)压缩文件的大小 (2)未压缩文件的大小 (3)压缩比 未压缩肆早森文件的名字 -r 递...

首先选择一个压缩算法

然后按照算法实现压缩代码,调用接口就可以

常见的 可以使用哈夫曼编码压缩,或者简毁使用开源的压皮册缩代码拦握备,比如lzo, gzip, lzma等等。

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压缩后网腔含站打开速度通常可能不会有太明显的感觉(相对于浏览者),可以用一些特定的来检查你的网页是否压缩过了,以及压缩比和加快的速度。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12491355.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存