"Fossies" - the Fresh Open Source Software Archive

Member "mod_gzip-" (30 Sep 2002, 10414 Bytes) of package /linux/www/apache_httpd_modules/old/mod_gzip-

As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) HTML source code syntax highlighting (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file.

A hint: This file contains one or more very long lines, so maybe it is better readable using the pure text view mode that shows the contents as wrapped lines within the browser window.

    1 <?xml version="1.0" encoding="iso-8859-1" ?>
    2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    3 <html xmlns="http://www.w3.org/1999/xhtml">
    5 <head>
    6  <title>Which browsers can handle 'Content-Encoding:'?</title>
    7  <meta name="author"      content="Michael Schr&ouml;pl" />
    8  <meta name="description" content="A description of the behaviour of the most popular web browsers regarding compressed page contents" />
    9  <meta name="keywords"    content="browsers, HTTP, encoding, gzip, compression" />
   10  <style type="text/css">
   11 body{font-family:sans-serif;margin:0px 30px 0px 30px;}
   12 h1{font-size:22px;margin-top:20px;}
   13 h2{font-size:18px;margin-top:14px;}
   14 small{font-size:80%;}
   15 td{vertical-align:top;}
   16 tt{font-weight:bold;}
   17 code,tt{font-family:"Courier New",monospace;}
   18 h1,h2{margin-bottom:1px;}
   19 p,td{margin-top:3px;margin-bottom:3px;}
   20 p,ul,ol,li{font-size:17px;line-height:22px;}
   21 ul,ol,li{margin-top:0px;margin-bottom:0px;}
   22 img{border-width:0;}
   24 #nav{position:absolute;top:30px;left:0px;font-size:14px;width:170px;font-weight:bold;margin:2px 2px 2px 30px;}
   25 #nav[id]{position:fixed;}
   26 #nav img{margin:5px;}
   27 #nav p, #nav a:hover, #nav a{display:block;padding:3px;margin:2px;width:150px;font-size:15px;line-height:18px;}
   28 #content{position:absolute;left:220px;right:30px;}
   29 #mail{text-align:right;}
   30 #icon{width:190px;float:left;}
   31 #mail,#icon{margin-top:30px;}
   33 @media screen {
   34 body{color:#000;background-color:#f8ebd9;}
   35 h1{color:#666;}
   36 h2{color:#840;}
   37 code{color:#333;}
   38 em{color:#900;}
   39 tt{color:#909;}
   40 h1,h2,code,em,tt{background-color:inherit;}
   41 .new13192a{color:#inherit;background-color:#ffd;}
   42 .new13261a{color:#inherit;background-color:#eff;}
   43 .bugfix{color:#fff;background-color:#f00;font-weight:bold;padding:0px 4px;}
   44 #nav a{color:#530;background-color:transparent;}
   45 #nav a{text-decoration:none;}
   46 #nav p, #nav a:hover{color:#000;background-color:#fff;}
   47 #nav p {border:1px #660 solid;}
   48 #nav a {border:1px #666 dotted;}
   49 }
   51 @media print {
   52 #icon,#nav{display:none;}
   53 #content{position:absolute;left:0px;right:0px;}
   54 }
   55  </style>
   56 </head>
   58 <body>
   60 <div id="nav">
   62 <img src="mod_gzip_logo.gif" height="47" width="102" alt="mod_gzip logo" />
   65 <a title="mod_gzip - what's that, anyway?" href="index.htm">mod_gzip</a>
   69 <a title="Compression of HTTP content using Content-Encoding" href="encoding.htm">Content-Encoding</a>
   73 <p>Browsers</p>
   77 <a title="How do Firewalls handle 'Content-Encoding:'?" href="firewalls.htm">Firewalls</a>
   81 <a title="An example configuration for mod_gzip" href="config.htm">Configuration</a>
   85 <a title="Complete description of mod_gzip status codes" href="status.htm">Status Codes</a>
   89 <a title="Possible enhancements in future versions of mod_gzip" href="enhancements.htm">Enhancements</a>
   93 <a title="Caching of negotiated HTTP responses" href="cache.htm">Caching</a>
   97 <a title="Version history and change log for mod_gzip" href="versions.htm">Versions</a>
  101 <a title="Other ressources about mod_gzip" href="links.htm">Links</a>
  104 </div>
  106 <div id="content">
  108 <h1>Which browsers can handle <code>Content-Encoding: gzip</code> ?</h1>
  110 <h2><a id="Netscape3"></a>Netscape 3</h2>
  111 <p>This browser uses HTTP/1.0. It doesn't send an <code>Accept-Encoding</code> header, thus doesn't request compressed content from a server.</p>
  112 <p>The browser <strong>does not yet support the processing of compressed page content</strong>. If it receives gzip compressed content, it recognizes that there is an encoding <code>gzip</code> unknown to it <small>(and displays a corresponding message to the user)</small>, but after that it displays the compressed page content within the browser windows. Serving compressed content unconditionally <small>(like in statically precompressed documents)</small> this browser isn't good for.</p>
  113 <p>A web server correctly evaluating the <code>Accept-Encoding</code> header is able to serve usable, uncompressed data to the browser.</p>
  115 <h2><a id="Netscape4"></a>Netscape 4</h2>
  116 <p>This browser uses HTTP/1.0. From version 4.06 on it is sending the header <code>Accept-Encoding: gzip</code>.</p>
  117 <p>Nevertheless the implementation of handling compressed content contains a number of <strong>bad errors</strong>:</p>
  118 <ul>
  119  <li>In many 4.x versions <strong>Cascading Style Sheets</strong> that are loaded from a separate file by use of the HTML tag<br />
  120  <code>&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;</code><i>file name</i><code>&quot; /&gt;</code><br />
  121  will <em>not</em> be decompressed and thus not evaluated.</li>
  122  <li>In many 4.x versions <strong>JavaScript code</strong> that is loaded from a separate file by use of the HTML tag<br />
  123  <code>&lt;script type=&quot;text/javascript&quot; src=&quot;</code><i>file name</i><code>&quot; /&gt;</code><br />
  124  will be decompressed and evaluated <em>only</em> if a <strong>cache is activated</strong> in the browser.<br />
  125  <small>(In case of activated JavaScript in the browser this problem may additionally cause JavaScript error messages if the HTML source code references definitions of the included JavaScript code.)</small></li>
  126  <li>In many 4.x versions the HTML code of the document will be decompressed before <strong>printing the page content</strong> <em>only</em> if a <strong>cache is activated</strong> in the browser; the same applies to the <strong>display of the page content in print preview mode</strong>.</li>
  127  <li>In many 4.x versions the <strong>display of HTML source code</strong> of the current documents works correctly <em>only</em> if a <strong>cache is activated</strong> in the browser. Otherwise an empty screen will be displayed instead of the source code.</li>
  128  <li>In many 4.x versions the correct handling of <strong>gzip compressed images</strong> may fail in the browser, under circumstances that don't seem to be easily reproducable. <small>(Anyway, images should be optimized manually by using chosing the correct file type, using a minimal color depth for GIF and the like - gzipping an already compressed file format won't lead to an additional gain worth mentioning.)</small></li>
  129  <li>In the versions 4.06 to 4.08 there are even problems with the processing of JavaScript code inside the <code>&lt;head&gt;</code> section of compressed HTML pages.</li>
  130 </ul>
  131 <p>In all these cases Netscape 4 seems to use the received, yet uncompressed version; obviously the invocation of a <small>(surely available)</small> function for content compression simply has been forgotten at the decisive positions.</p>
  132 <p>And some part of the errors described above may only be in effect if the browser's cache has been set to 0 MB and/or switched off - so it seems Netscape 4 is somehow using the browser cache as temporary storage for decompressing ...</p>
  134 <h2><a id="Mozilla"></a>Netscape 6 &amp; 7 and Mozilla 0.9.x &amp; 1.x</h2>
  135 <p>This browser uses HTTP/1.1. From Netscape 6.2 on <small>(= Mozilla 0.9.4)</small>, it is sending the header <code>Accept-Encoding: gzip, deflate, compress;q=0.9</code>.</p>
  136 <p>Mozilla 0.9.9+ und Netscape 7.0PR1 allow the user to define the HTTP version as well as the content of this headers in its configuration; in Mozilla 1.1alpha this function is no longer visible in the preferences but can be defined in the configuration file <code>defaults/pref/all.js</code> <small>(under the name <code>network.http.accept-encoding</code>)</small>.</p>
  137 <p>Processing compressed content works <em>if the browser has requested compressed content</em>; otherwise it ignores the HTTP header <code>Content-Encoding: gzip</code> although it would be able to decompress the content.</p>
  139 <h2><a id="Microsoft"></a>Microsoft Internet Explorer 4.0, 5.0, 5.5 and 6.0</h2>
  140 <p>This browser uses either HTTP/1.0 or HTTP/1.1, depending upon the settings in the internet options. It is sending the header <code>Accept-Encoding: gzip, deflate</code> - but only if using HTTP/1.1.</p>
  141 <p>Processing compressed content works <em>if the browser has requested compressed content</em>; otherwise it ignores the HTTP header <code>Content-Encoding: gzip</code> although it would be able to decompress the content.</p>
  142 <p>Some older versions of the Internet Explorer seem to fire the JavaScript event <code>onLoad</code> already when they have successfully <em>received</em> a JavaScript file referenced within the <code>&lt;head&gt;</code> section instead of waiting for the successful completion of <em>decompressing</em> its content.</p>
  144 <h2><a id="Opera-old"></a>Opera 3 and 4</h2>
  145 <p>Opera 3.5 does <em>not yet</em> understand compressed content.</p>
  146 <p>From version 4 on Opera is using HTTP/1.1. Opera 4.0beta3 did already try to communicate in compressed form but sent the header <code>TE: deflate, gzip, x-gzip, identity, trailers</code>, i.&nbsp;e. it expected gzip compression to be applied as <em>Transfer Encoding</em>, not as <em>Content Encoding</em>.</p>
  148 <h2><a id="Opera"></a>Opera 5 and 6</h2>
  149 <p>Starting with version 5.12 <small>(or a bit earlier)</small> Opera is sending the header <code>Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0</code>. Processing compressed content works without known problems in versions 5 and up.</p>
  150 <p>Opera 6 <small>(as the single known browser up to now)</small> decompresses gzip-compressed document content even if the server did <em>not</em> call its attention to it by serving the HTTP header <code>Content-Encoding: gzip</code>.</p>
  152 <h2><a id="Lynx"></a>Lynx</h2>
  153 <p>Lynx supports gzip-compressed communikation since version 2.6.</p>
  154 <p>The first Lynx versions had to start a separate process using an external <code>gzip -d</code> command for decompressing. This of course leads into problems in case of no <code>gzip</code> command being available.</p>
  155 <p>More recent versions of Lynx <small>(since 1997-08-14, see Lynx 2.8.0 <code>CHANGES</code> file)</small> use the <code>zlib</code> library for decompressing and don't have these problems any more.</p>
  157 <div id="icon">
  158  <a href="http://validator.w3.org/check/referer"><img alt="" title="valid XHTML 1.1" height="31" width="88" src="valid-xhtml11.png" /></a><a href="http://jigsaw.w3.org/css-validator/check/referer"><img alt="" title="valid CSS" height="31" width="88" src="valid-css.png" /></a>
  159 </div>
  162 <p id="mail">(<a href="mailto:michael.schroepl&#x40;gmx.de?subject=mod_gzip">Michael Schr&ouml;pl</a>, 2002-09-16)</p>
  164 </div>
  166 </body>
  167 </html>