2017-05-12 16 views
0

私は単純なローカルHTTPサーバーを作成しています。ブラウザーが "localhost:port/path"にアクセスすると、サーバー側は対応するローカル・ファイルをブラウザーに応答します。CでシンプルなHTTPサーバーでgzip/zipファイル圧縮をサポート

サーバーは、ソケット経由でクライアントに返信する前にファイルを圧縮するなどのいくつかの追加機能を提供します。私はどのようにローカルファイル(例えば、abc.jpg> abc.jpg.zip)をスクリプトで圧縮するのかと思います。人々は<zlib.h>または<zip.h>を使用するように提案しましたが、私はマニュアルページを読み込んでも圧縮のためにそれらをどのように使用するのか分かりません。

誰でも私のヒントを教えてください。

答えて

0

私はあなたがHTTPレスポンスのエンコーディングに使用する圧縮形式はContent-Encodingヘッダー内gzipまたはdeflate値であるgzipzlib形式、だと思います。サーバーは、ブラウザが受け入れ、デコードできる方法でのみエンコードする必要があります。サーバー上のデータを圧縮する方法については、more detailsです。

zlib.hライブラリは圧縮の仕事をすることができます。その著者によってdetailed tutorailがあります。この例ではzlib形式を使用していますが、gzipを使用してもそれほど違いはありません(deflateInit()の代わりにdeflateInit2()と呼んでください。マニュアルをもう一度読むことは避けられません)。

希望に役立ちます。

+0

ありがとうございます!それはたくさんの助けになります!それを消化する時間が必要です。 –