2017-05-12 2 views
0

간단한 로컬 HTTP 서버를 작성하고 있습니다. 브라우저가 "localhost : port/path"를 방문하면 서버 측에서 해당 로컬 파일을 브라우저에 응답합니다.C에서 간단한 HTTP 서버로 gzip/zip 파일 압축 지원

서버는 소켓을 통해 클라이언트로 다시 보내기 전에 파일 압축과 같은 몇 가지 추가 기능을 제공합니다. 나는 스크립트로 로컬 파일 (예. abc.jpg> abc.jpg.zip)을 압축하는 방법에 대해 궁금합니다. 사람들은 <zlib.h> 또는 <zip.h>을 사용하도록 제안했으나 맨 페이지를 읽는 경우에도 압축 용으로 사용하는 방법에 대해서는 잘 모릅니다.

아무도 내게 힌트를 줄 수 있습니까?

답변

0

난 당신이 HTTP 응답의 인코딩에 사용해야하는 압축 형식이 gzip 또는 gzip 또는 Content-Encoding 헤더에 deflatezlib 형식,라고 생각합니다. 서버는 브라우저가 수락하고 디코딩 할 수있는 방식으로 만 인코딩해야합니다. 서버의 데이터 압축에 대해 more details 있습니다.

zlib.h 라이브러리는 압축 작업을 수행 할 수 있습니다. 작성자는 detailed tutorail입니다. 이 예제에서는 zlib 형식을 사용하고 있지만 gzip을 사용하면 매우 다르지 않습니다. deflateInit() 대신 deflateInit2()을 호출하면 설명서를 다시 읽어야합니다.

희망이 있습니다.

+0

감사합니다. 그게 많은 도움이됩니다! 그것을 소화 할 시간이 필요합니다. –