2011-07-28 3 views
3

압축 된 데이터로 HTTP :: Response를 생성해야합니다. 콘텐츠를 gzip으로 만들려면 어떻게해야합니까? 필자는 적절한 헤더를 추가하고 Compress :: Zlib를 사용하여 직접 압축합니까? 아니면 어떤 LWP 모듈이 이것을 처리 할 수있는 방법을 제공합니까?gzip 압축 HTTP :: Response를 어떻게 만듭니 까?

+0

[This perlmonks article] (http://www.perlmonks.org/?node=858560)이 도움이 될 수 있습니다. – maerics

+0

이 질문을 참조하십시오 : http://stackoverflow.com/questions/1285305/how-can-i-accept-gzip-compressed-content-using-lwpuseragent –

+0

다음은 gzipped 콘텐츠를 다운로드하는 방법입니다. 제 질문은 내 웹 서버를 통해 gzip으로 압축 된 컨텐츠를 제공하는 것입니다. 나는 "abc 12345"라고하는 내용을 가지고있다. 클라이언트/브라우저에 HTTP :: Response로 gzipped 버전을 보내야합니다. – mrburns

답변

2

이것이 필요한가요? 데이터를 gzip으로 만들고 Content-encoding 헤더를 설정 한 다음 보내십시오.

use strict; 
use warnings; 

use HTTP::Response; 
use IO::Compress::Gzip qw(gzip); 

my $data = q(My cat's name is Buster); 

my $gzipped_data; 
my $gzip = gzip \$data => \$gzipped_data; 
print STDERR $gzipped_data; 

my $response = HTTP::Response->new; 

$response->code(200); 
$response->header('Content-type'  => 'text/plain'); 
$response->header('Content-encoding' => 'gzip'); 
$response->header('Content-length' => length $gzipped_data); 

$response->content($gzipped_data); 

print $response->as_string;