Andreas J. König > Apache-GzipChain > Apache::GzipChain

Download:
Apache-GzipChain-1.20.tar.gz

Dependencies

Annotate this POD (1)

Related Modules

Compress::Zlib
Apache::Registry
HTML::Template
Apache::Filter
Archive::Zip
more...
By perlmonks.org

CPAN RT

Open  1
View/Report Bugs
Module Version: 1.20   Source  

NAME ^

Apache::GzipChain - compress HTML (or anything) in the OutputChain

SYNOPSIS ^

In the configuration of your apache add something like

    <Files *.html>
    SetHandler perl-script
    PerlHandler Apache::OutputChain Apache::GzipChain __your_handler__
    PerlSetVar GzipForce on  # optional
    </Files>

DESCRIPTION ^

This module compresses any output from another perl handler if the browser requesting the document understands gzip encoding or if the config variable ForceGzip is set. To determine if the browser is able to understand us we check its Accept-Encoding header.

The module works without influencing the other handlers in the chain. The only thing that can be noticed by other handlers is that the response header 'Content-Encoding' has been set. If GzipChain decides not to do any compression, it just declines and doesn't even register itself for the output chain.

GzipChain compresses every single buffer content it receives via the output chain separately according to the GZIP specification (RFC 1952). The compression ratio therefore suffers if the other module sends its data in very small chunks. It is recommended that you use as few print statements as possible in conjunction with the GzipChain. One single print statement is recommended.

HEADERS ^

This handler sets the header Content-Encoding to gzip whenever it sends gzipped data.

It also sets or appends to the Vary header the values Accept-Encoding unless the config variable GzipForce is set, in which case the output is the same for all user agents.

Unicode ^

To use this module under perl-5.8 or higher with Unicode data you have to convert to octets before printing them. Something like this will do:

  Encode::encode_utf8($res);

PREREQUISITES ^

Compress::Zlib, Apache::OutputChain

AUTHOR ^

Andreas Koenig, based on code by Jan Pazdziora

LICENSE ^

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

syntax highlighting: