- Run length web response compression uses a compression algorithm
to transmit web responses back to the users web browser in an attempt to
decrease load time of a particular page. Apollo autodetects if the browser
supports GZIP run length encoding, and will use it only when supported. Run
length encoding
does increase CPU load on the server, but can make a substantial increase in web performance,
especially over a modem. To take some stats from a real world situations, I
will supply some statistics from a production web application using GZIP web
compression. For a randomly
selected block of time the system generated xxx bytes of HTML, which were
compressed to xxx bytes, for a total savings of xx.x%. Data compression is
optional in apollo,
even if the remote browser supports it. You may activate it for all eligible responses,
or just ones which can be highly compressed. The compression is run length,
which means the browser can decode the compressed data before transmission is
complete. If the transmission stream stalls or is interrupted, whatever data has been
sent can be decoded without waiting for the remainder of the stream. Netscape 4.5 and greater
support GZIP compression, as well as IE 4.01 and greater. We have used GZIP compression
in a production application for over two years, and have never had a report of problems or
incompatibility. There
were inconclusive reports that Macintosh versions of Netscape tended to "System bomb" the
machine when GZIP encoding was active. The GZIP compression module is configured with
a mechanism to selectively disable compression for particular browsers, and we have by default,
disable GZIP compression for all Macintosh platforms. It is still unclear if
the system bombs were related to compression. Although compression can be
used for mime-types other then text/html, it is advisable to only encode responses which
will be handled internally by the browser. Certain browsers when saving unknown
mime-types
have a tendency to save the GZIP stream compressed to disk, which is often not the
indented action.
There is a statistics module for monitoring GZIP performance and CPU
utilization. Register statistics module GZIPStat for real-time compression
statistics.