pereinar 2002/10/31 01:20:03 Modified: src/docs/tutorials Changes.pod config.cfg Added: src/docs/tutorials/client/compression compression.pod Log: Added Web Content Compression FAQ by Slava. Submitted by: "Slava Bizyayev" <[EMAIL PROTECTED]> Reviewed by: Per Einar, Ged Haywood Revision Changes Path 1.6 +5 -0 modperl-docs/src/docs/tutorials/Changes.pod Index: Changes.pod =================================================================== RCS file: /home/cvs/modperl-docs/src/docs/tutorials/Changes.pod,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- Changes.pod 5 Jun 2002 17:48:09 -0000 1.5 +++ Changes.pod 31 Oct 2002 09:20:03 -0000 1.6 @@ -9,6 +9,11 @@ The most recent changes are listed first. +=head1 Ongoing + +* Added "Web Content Compression FAQ" by Slava Bizyayev E<lt>slava + at) cpan.orgE<gt> + =head1 Wed Jun 5 19:24:05 CET 2002 * Re-arranged content completely to better classify and be able to 1.8 +1 -0 modperl-docs/src/docs/tutorials/config.cfg Index: config.cfg =================================================================== RCS file: /home/cvs/modperl-docs/src/docs/tutorials/config.cfg,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- config.cfg 29 Jun 2002 19:21:51 -0000 1.7 +++ config.cfg 31 Oct 2002 09:20:03 -0000 1.8 @@ -30,6 +30,7 @@ group => 'Client side facts and bugs', chapters => [qw( client/browserbugs/browserbugs.pod + client/compression/compression.pod )], changes => 'Changes.pod', 1.1 modperl-docs/src/docs/tutorials/client/compression/compression.pod Index: compression.pod =================================================================== =head1 NAME Web Content Compression FAQ =head1 Description Compression of outgoing traffic from web servers is beneficial for clients, who get quicker responses, as well as for providers who use less bandwith. Many solutions exist for mod_perl and Apache, and we discuss some of the aspects involved here. This FAQ is written mainly for Internet content provider management familiar with Internet traffic issues and network equipment and its cost. This document may also be informative for ISP system administrators and webmasters seeking to improve throughput and bandwidth efficiency. =head1 Q: Why it is important to compress web content? =head2 A: Reduced equipment costs and the competitive advantage of dramatically faster page loads. Web content compression noticeably increases delivery speed to clients and may allow providers to serve higher content volumes without increasing hardware expenditures. It visibly reduces actual content download time, a benefit most apparent to users of dialup and high-traffic connections. =head1 Q: How much improvement can I expect? =head2 A: Effective compression can achieve increases in transmission efficiency from 3 to 20 times. The compression ratio is highly content-dependent. For example, if the compression algorithm is able to detect repeated patterns of characters, compression will be greater than if no such patterns exist. You can usually expect to realize an improvement between of 3 to 20 times on regular HTML, JavaScript, and other ASCII content. I have seen peak HTML file compression improvements in excess of more than 200 times, but such occurrences are infrequent. On the other hand I have never seen ratios of less than 2.5 times on text/HTML files. Image files normally employ their own compression techniques that reduce the advantage of further compression. =for html <blockquote> On May 21, 2002 Peter J. Cranstone wrote to the [EMAIL PROTECTED] mailing list: I<"...With 98% of the world on a dial up modem, all they care about is how long it takes to download a page. It doesn't matter if it consumes a few more CPU cycles if the customer is happy. It's cheaper to buy a newer faster box, than it is to acquire new customers."> =for html </blockquote> =head1 Q: How hard is it to implement content compression on an existing site? =head2 A: Implementing content compression on an existing site typically involves no more that installing and configuring an appropriate Apache handler on the Web server. This approach works in most of the cases I have seen. In some special cases you will need to take extra care with respect to the global architecture of your web application, but such cases may generally be readily addressed through various techniques. To date I have found no fundamental barriers to practical implementation of Web content compression. =head1 Q: Does compression work with standard Web browsers? =head2 A: Yes. No client side changes or settings are required. All modern browser makers claim to be able to handle compressed content and are able to decompress it on the fly, transparent to the user. There are some known bugs in some old browsers, but these can be taken into account through appropriate configuration of the Web server. =head1 Q: What software is required on the server side? =head2 A: There are six known modules/packages for the Web content compression available to date for Apache (in alphabetical order): =over 4 =item * Apache::Compress a mod_perl handler developed by Ken Williams (U.S.) which compresses output through C<Apache::Filter> =item * Apache::Dynagzip a family of mod_perl handlers, developed by Slava Bizyayev -- a Russian programmer residing in the U.S. =item * Apache::Gzip an example of mod_perl filter developed by Lincoln Stein and Doug MacEachern for their book I<Writing Apache Modules with Perl and C> (U.S.), which like C<Apache::Compress> works with C<Apache::Filter>. =item * Apache::GzipChain a mod_perl handler developed by Andreas Koenig (Germany), which compresses output through C<Apache::OutputChain>. =item * mod_deflate an Apache handler written in C by Igor Sysoev (Russia). =item * mod_gzip an Apache handler written in C. Original author: Kevin Kiley, I<Remote Communications, Inc.> (U.S.) =back In February 2002, Nicholas Oxhøj wrote to the modperl@apache.org mailing list about his own experience to find the appropriate Apache gzipping tool for streaming outbound content: =for html <blockquote> I<"... I have been experimenting with all the different Apache compression modules I have been able to find, but have not been able to get the desired result. I have tried C<Apache::GzipChain>, C<Apache::Compress>, C<mod_gzip> and C<mod_deflate>, with different results. One I cannot get to work at all. Most work, but seem to collect all the output before compressing it and sending it to the browser...> I<... Wouldn't it be nice to have some option to specify that the handler should flush and send the currently compressed output every time it had received a certain amount of input or every time it had generated a certain amount of output?..> I<... So I am basically looking for anyone who has had any success in achieving this kind of "streaming" compression, who could direct me at an appropriate Apache module."> =for html </blockquote> The C<Apache::Dynagzip> package wasn't publicly available at that time. =head1 Analysis of different packages =head2 Apache::DynaGzip C<Apache::Dynagzip> is most useful when one needs to compress dynamic outbound Web content (generated on the fly from databases, XML, etc.) when content length is not known at the time of the request. C<Apache::Dynagzip>'s features include: =over 4 =item * Support for both HTTP/1.0 and HTTP/1.1. =item * Control over the chunk size on HTTP/1.1 for on-the-fly content compression. =item * Support for any Perl, Java, or C/C++ CGI applications. =item * Advanced control over the proxy cache with the C<Vary> HTTP header. =item * Optional control over content lifetime in the client's local cache with the C<Expires> HTTP header. =item * Optional extra-light compression (removal of leading blank spaces and/or blank lines), which works for all browsers, including older ones that cannot uncompress gzip format. =item * Optional support for server-side caching of the dynamically generated (and compressed) content. =back =head1 Maintainers The maintainer is the person you should contact with updates, corrections and patches. =over =item * Slava Bizyayev E<lt>slava (at) cpan.orgE<gt> =back =head1 Authors =over =item * Slava Bizyayev E<lt>slava (at) cpan.orgE<gt> =back Only the major authors are listed above. For contributors see the Changes file. =cut
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]