NAME
WWW::Mechanize::Cached::GZip - like WWW::Mechanize + caching + gzip-compression
VERSION
Version 0.12
SYNOPSIS
use WWW::Mechanize::Cached::GZip;
my $mech_cached = WWW::Mechanize::Cached::GZip->new();
my $response = $mech_cached->get($url);
print "x-content-length (before unzip) = ", $response->header('x-content-length');
print "content-length (after unzip) = ", $response->header('content-length');
...
# for the same $url - the already uncompressed $response2 is now taken from cache:
my $response2 = $mech_cached->get($url);
DESCRIPTION
The WWW::Mechanize::Cached::GZip module tries to fetch a URL by requesting gzip-compression from the webserver.
Caching is done by inheriting from WWW::Mechanize::Cached. Constructor parameters are identically and described there.
DECOMPRESSION
If the response contains a header with 'Content-Encoding: gzip', it decompresses the response-body in order to get the original (uncompressed) content.
This module will help to reduce bandwith fetching webpages, if supported by the webeserver. If the webserver does not support gzip-compression, no decompression will be made.
The decompression of the response is handled by Compress::Zlib::memGunzip.
There is a small webform, you can instantly test, whether a webserver supports gzip-compression on a particular URL: http://www.computerhandlung.de/www-mechanize-cached-gzip.htm
CACHING
This modules is a direct subclass of WWW::Mechanize::Cached and will therefore accept the same constructor parameters and support any methods provided by WWW::Mechanize::Cached.
The default behavoir is to use Cache::FileCache which stores its files somewhere under /tmp.
METHODS
- prepare_request
-
Adds 'Accept-Encoding' => 'gzip' to outgoing HTTP-headers before sending.
- send_request
-
Unzips response-body if 'content-encoding' is 'gzip' and corrects 'content-length' to unzipped content-length.
SEE ALSO
AUTHOR
Peter Giessner cardb@planet-elektronik.de
LICENCE AND COPYRIGHT
Copyright (c) 2011, Peter Giessner cardb@planet-elektronik.de
. All rights reserved.
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.