GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  PLACK::MIDDLEWARE::DEFLATER (3)

.ds Aq ’

NAME

Plack::Middleware::Deflater - Compress response body with Gzip or Deflate

CONTENTS

SYNOPSIS



  use Plack::Builder;

  builder {
    enable sub {
        my $app = shift;
        sub {
            my $env = shift;
            my $ua = $env->{HTTP_USER_AGENT} || ;
            # Netscape has some problem
            $env->{"psgix.compress-only-text/html"} = 1 if $ua =~ m!^Mozilla/4!;
            # Netscape 4.06-4.08 have some more problems
             $env->{"psgix.no-compress"} = 1 if $ua =~ m!^Mozilla/4\.0[678]!;
            # MSIE (7|8) masquerades as Netscape, but it is fine
            if ( $ua =~ m!\bMSIE (?:7|8)! ) {
                $env->{"psgix.no-compress"} = 0;
                $env->{"psgix.compress-only-text/html"} = 0;
            }
            $app->($env);
        }
    };
    enable "Deflater",
        content_type => [text/css,text/html,text/javascript,application/javascript],
        vary_user_agent => 1;
    sub { [200,[Content-Type,text/html],["OK"]] }
  };



DESCRIPTION

Plack::Middleware::Deflater is a middleware to encode your response body in gzip or deflate, based on Accept-Encoding HTTP request header. It would save the bandwidth a little bit but should increase the Plack server load, so ideally you should handle this on the frontend reverse proxy servers.

This middleware removes Content-Length and streams encoded content, which means the server should support HTTP/1.1 chunked response or downgrade to HTTP/1.0 and closes the connection.

CONFIGURATIONS

content_type


  content_type => text/html,
  content_type => [ text/html, text/css, text/javascript, application/javascript, application/x-javascript ]



Content-Type header to apply deflater. if content-type is not defined, Deflater will try to deflate all contents.

vary_user_agent


  vary_user_agent => 1



Add User-Agent to Vary header.

ENVIRONMENT VALUE

psgix.no-compress Do not apply deflater
psgix.compress-only-text/html Apply deflater only if content_type is text/html
plack.skip-deflater Skip all Deflater features

    Compare psgix.no-compress with plack.skip-deflater

If no-compress is true, PM::Deflater skips gzip or deflate. But adds Vary: Accept-Encoding and Vary: User-Agent header. skip-deflater forces to skip all PM::Deflater feature, doesn’t allow to add Vary header.

LICENSE

This software is licensed under the same terms as Perl itself.

AUTHOR

Tatsuhiko Miyagawa

SEE ALSO

Plack, <http://httpd.apache.org/docs/2.2/en/mod/mod_deflate.html>
Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 PLACK::MIDDLEWARE::DEFLATER (3) 2013-09-12

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.