使用C中的简单HTTP服务器支持gzip / zip文件压缩

时间:2017-05-12 05:35:29

标签: c http server compression gzip

我正在编写一个简单的本地HTTP服务器。当浏览器访问“localhost:port / path”时,服务器端会将相应的本地文件响应给浏览器。

服务器将提供一些额外的功能,例如在通过套接字发送回客户端之前压缩文件。我想知道如何通过脚本压缩本地文件(例如.abc.jpg&gt; abc.jpg.zip)。人们建议使用ES5<zlib.h>但我不知道如何使用它们进行压缩,即使我阅读了手册页。

有人可以给我一些提示吗?

1 个答案:

答案 0 :(得分:1)

我认为您应该用于HTTP响应编码的压缩格式为gzipzlib格式,gzip标题为deflateContent-Encoding 。服务器应该只以浏览器接受并可以解码的方式对其进行编码。以下是有关在服务器上压缩数据的more details

zlib.h库可以完成压缩工作。其作者有一个detailed tutorail。它在此示例中使用zlib格式,但使用gzip并没有太大差异(调用deflateInit2()而不是deflateInit(),再次阅读手册将是不可避免的。)

希望有所帮助。