自己动手写web服务器四(web服务器是如何通过压缩数据,web服务器的gzip模块的实现) - 三月软件工作室--任忌 - 博客频道 - CSDN.NET
web服务器为什么要压缩数据?
web服务器如果将要发送的网页经过压缩后,待发送的数据将会减少一半左右,将会节省很大一部分的带宽,从而提高自己的并发量和减少网页传输时间。加快网页的浏览。
是不是web服务器开启压缩一定会提高性能?
不一定的,因为每次压缩,都需要对文件进行压缩算法。将会消耗一定cpu和I/O的。因此,当文件较小时没有必要开启压缩功能。
本程序本人自己在ubuntu中编译成功,在ubuntu中经过Firefox中,window 系统IE 8,Firefox、chrome中测试成功。
本程序需要用到zlib压缩类库,没有装将无法成功,本人只提供在ubuntu中的代码及运行方式。希望大家谅解。关于用到的
zlib库中的知识,稍后会出新的博客做解释,关于gzip压缩的头部请看另外一篇博客 gzip头部格式。
使用zlib说明http://blog.csdn.net/rentiansheng/article/details/8519681
源码及makefile下载地址:http://pan.baidu.com/share/link?shareid=167795&uk=2181414688
运行过程:
1.将代码和makefile文件下载下来
2.在终端中转到代买和makefile所在的文件的目录中
3.执行make命令编译
4 执行生成的reage程序,(./reage)
5.在浏览器中输入127.0.0.1:1024 就可以看到结果了
(我的压缩内容时固定,不好意思了。也忘记输出压缩前的大小和压缩后的大小作比较了。因为内容少压缩的有点体现不出来的。重在功能实现的)
直接给大家上源代码。下面为源代码。(如有任何问题,希望大家指出来了)