mod_deflate.html.en revision 4f372d1b10414884e2526724169d6027468ea473
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<?xml version="1.0" encoding="ISO-8859-1"?>
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head><!--
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers This file is generated from xml source: DO NOT EDIT
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers -->
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<title>mod_deflate - Apache HTTP Server</title>
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<link href="/style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<link href="/style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<link href="/style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<link href="/images/favicon.ico" rel="shortcut icon" /></head>
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<body>
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<div id="page-header">
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<p class="menu"><a href="/mod/">Modules</a> | <a href="/mod/directives.html">Directives</a> | <a href="/faq/">FAQ</a> | <a href="/glossary.html">Glossary</a> | <a href="/sitemap.html">Sitemap</a></p>
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<p class="apache">Apache HTTP Server Version 2.3</p>
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<img alt="" src="/images/feather.gif" /></div>
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="/images/left.gif" /></a></div>
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<div id="path">
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP Server</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.3</a> &gt; <a href="./">Modules</a></div>
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<div id="page-content">
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<div id="preamble"><h1>Apache Module mod_deflate</h1>
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<div class="toplang">
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<p><span>Available Languages: </span><a href="/en/mod/mod_deflate.html" title="English">&nbsp;en&nbsp;</a> |
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<a href="/fr/mod/mod_deflate.html" hreflang="fr" rel="alternate" title="Fran�ais">&nbsp;fr&nbsp;</a> |
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<a href="/ja/mod/mod_deflate.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<a href="/ko/mod/mod_deflate.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers</div>
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Compress content before it is delivered to the
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sieversclient</td></tr>
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<tr><th><a href="module-dict.html#Status">Status:</a></th><td>Extension</td></tr>
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<tr><th><a href="module-dict.html#ModuleIdentifier">Module�Identifier:</a></th><td>deflate_module</td></tr>
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<tr><th><a href="module-dict.html#SourceFile">Source�File:</a></th><td>mod_deflate.c</td></tr></table>
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<h3>Summary</h3>
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers <p>The <code class="module"><a href="/mod/mod_deflate.html">mod_deflate</a></code> module provides
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers the <code>DEFLATE</code> output filter that allows output from
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers your server to be compressed before being sent to the client over
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers the network.</p>
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers</div>
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<div id="quickview"><h3 class="directives">Directives</h3>
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<ul id="toc">
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<li><img alt="" src="/images/down.gif" /> <a href="#deflatebuffersize">DeflateBufferSize</a></li>
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<li><img alt="" src="/images/down.gif" /> <a href="#deflatecompressionlevel">DeflateCompressionLevel</a></li>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers<li><img alt="" src="/images/down.gif" /> <a href="#deflatefilternote">DeflateFilterNote</a></li>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers<li><img alt="" src="/images/down.gif" /> <a href="#deflatememlevel">DeflateMemLevel</a></li>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers<li><img alt="" src="/images/down.gif" /> <a href="#deflatewindowsize">DeflateWindowSize</a></li>
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers</ul>
c5b7838ddeae1fcd5c613ea15f04918b945823e5Martin Pitt<h3>Topics</h3>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers<ul id="topics">
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers<li><img alt="" src="/images/down.gif" /> <a href="#recommended">Sample Configurations</a></li>
b534166eaec8fef9902a68f75cab8eeae458b23cMartin Pitt<li><img alt="" src="/images/down.gif" /> <a href="#enable">Enabling Compression</a></li>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers<li><img alt="" src="/images/down.gif" /> <a href="#proxies">Dealing with proxy servers</a></li>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers</ul><h3>See also</h3>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers<ul class="seealso">
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers<li><a href="/filter.html">Filters</a></li>
c5b7838ddeae1fcd5c613ea15f04918b945823e5Martin Pitt</ul></div>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers<div class="section">
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers<h2><a name="recommended" id="recommended">Sample Configurations</a></h2>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers <p>This is a simple sample configuration for the impatient.</p>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers <div class="example"><h3>Compress only a few types</h3><p><code>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers AddOutputFilterByType DEFLATE text/html text/plain text/xml
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers </code></p></div>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers <p>The following configuration, while resulting in more compressed content,
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers is also much more complicated. Do not use this unless you fully understand
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers all the configuration details.</p>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers <div class="example"><h3>Compress everything except images</h3><p><code>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers &lt;Location /&gt;<br />
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers <span class="indent">
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers # Insert filter<br />
42a9de1c2513aa348df369080cdd941ef4ab00abMartin Pitt SetOutputFilter DEFLATE<br />
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers <br />
c5b7838ddeae1fcd5c613ea15f04918b945823e5Martin Pitt # Netscape 4.x has some problems...<br />
c5b7838ddeae1fcd5c613ea15f04918b945823e5Martin Pitt BrowserMatch ^Mozilla/4 gzip-only-text/html<br />
90e633a7901060063e62bf53948c4c239a9f55d1Jason St. John <br />
c5b7838ddeae1fcd5c613ea15f04918b945823e5Martin Pitt # Netscape 4.06-4.08 have some more problems<br />
c5b7838ddeae1fcd5c613ea15f04918b945823e5Martin Pitt BrowserMatch ^Mozilla/4\.0[678] no-gzip<br />
c5b7838ddeae1fcd5c613ea15f04918b945823e5Martin Pitt <br />
c5b7838ddeae1fcd5c613ea15f04918b945823e5Martin Pitt # MSIE masquerades as Netscape, but it is fine<br />
c5b7838ddeae1fcd5c613ea15f04918b945823e5Martin Pitt BrowserMatch \bMSIE !no-gzip !gzip-only-text/html<br />
c5b7838ddeae1fcd5c613ea15f04918b945823e5Martin Pitt # Don't compress images<br />
c5b7838ddeae1fcd5c613ea15f04918b945823e5Martin Pitt SetEnvIfNoCase Request_URI \<br />
c5b7838ddeae1fcd5c613ea15f04918b945823e5Martin Pitt <span class="indent">
c5b7838ddeae1fcd5c613ea15f04918b945823e5Martin Pitt \.(?:gif|jpe?g|png)$ no-gzip dont-vary<br />
c5b7838ddeae1fcd5c613ea15f04918b945823e5Martin Pitt </span>
c5b7838ddeae1fcd5c613ea15f04918b945823e5Martin Pitt <br />
c5b7838ddeae1fcd5c613ea15f04918b945823e5Martin Pitt # Make sure proxies don't deliver the wrong content<br />
c5b7838ddeae1fcd5c613ea15f04918b945823e5Martin Pitt Header append Vary User-Agent env=!dont-vary<br />
c5b7838ddeae1fcd5c613ea15f04918b945823e5Martin Pitt </span>
c5b7838ddeae1fcd5c613ea15f04918b945823e5Martin Pitt &lt;/Location&gt;
c5b7838ddeae1fcd5c613ea15f04918b945823e5Martin Pitt </code></p></div>
c5b7838ddeae1fcd5c613ea15f04918b945823e5Martin Pitt
c5b7838ddeae1fcd5c613ea15f04918b945823e5Martin Pitt</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
c5b7838ddeae1fcd5c613ea15f04918b945823e5Martin Pitt<div class="section">
c5b7838ddeae1fcd5c613ea15f04918b945823e5Martin Pitt<h2><a name="enable" id="enable">Enabling Compression</a></h2>
c5b7838ddeae1fcd5c613ea15f04918b945823e5Martin Pitt
c5b7838ddeae1fcd5c613ea15f04918b945823e5Martin Pitt <h3><a name="output" id="output">Output Compression</a></h3>
c5b7838ddeae1fcd5c613ea15f04918b945823e5Martin Pitt <p>Compression is implemented by the <code>DEFLATE</code>
c5b7838ddeae1fcd5c613ea15f04918b945823e5Martin Pitt <a href="/filter.html">filter</a>. The following directive
c5b7838ddeae1fcd5c613ea15f04918b945823e5Martin Pitt will enable compression for documents in the container where it
c5b7838ddeae1fcd5c613ea15f04918b945823e5Martin Pitt is placed:</p>
c5b7838ddeae1fcd5c613ea15f04918b945823e5Martin Pitt
c5b7838ddeae1fcd5c613ea15f04918b945823e5Martin Pitt <div class="example"><p><code>
c5b7838ddeae1fcd5c613ea15f04918b945823e5Martin Pitt SetOutputFilter DEFLATE
c5b7838ddeae1fcd5c613ea15f04918b945823e5Martin Pitt </code></p></div>
c5b7838ddeae1fcd5c613ea15f04918b945823e5Martin Pitt
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers <p>Some popular browsers cannot handle compression of all content
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers so you may want to set the <code>gzip-only-text/html</code> note to
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers <code>1</code> to only allow html files to be compressed (see
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers below). If you set this to <em>anything but <code>1</code></em> it
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers will be ignored.</p>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers
b534166eaec8fef9902a68f75cab8eeae458b23cMartin Pitt <p>If you want to restrict the compression to particular MIME types
b534166eaec8fef9902a68f75cab8eeae458b23cMartin Pitt in general, you may use the <code class="directive"><a href="/mod/core.html#addoutputfilterbytype">AddOutputFilterByType</a></code> directive. Here is an example of
2dd30e7da94b32df03451df8cf602e9454a376cbKay Sievers enabling compression only for the html files of the Apache
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers documentation:</p>
1e091c1285b59d0fbab58e6e5113ad111bc08794Martin Pitt
1e091c1285b59d0fbab58e6e5113ad111bc08794Martin Pitt <div class="example"><p><code>
1e091c1285b59d0fbab58e6e5113ad111bc08794Martin Pitt &lt;Directory "/your-server-root/manual"&gt;<br />
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers <span class="indent">
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers AddOutputFilterByType DEFLATE text/html<br />
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers </span>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers &lt;/Directory&gt;
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers </code></p></div>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers <p>For browsers that have problems even with compression of all file
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers types, use the <code class="directive"><a href="/mod/mod_setenvif.html#browsermatch">BrowserMatch</a></code> directive to set the <code>no-gzip</code>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers note for that particular browser so that no compression will be
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers performed. You may combine <code>no-gzip</code> with <code>gzip-only-text/html</code> to get the best results. In that case
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers the former overrides the latter. Take a look at the following
ee2babf4c36f9ab65e9ebbe966ed7839c532df45Martin Pitt excerpt from the <a href="#recommended">configuration example</a>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers defined in the section above:</p>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers <div class="example"><p><code>
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers BrowserMatch ^Mozilla/4 gzip-only-text/html<br />
33e74db2667103e33f7e47277378612dcdbdfaa5Martin Pitt BrowserMatch ^Mozilla/4\.0[678] no-gzip<br />
e55edb22a71e67f01534d28f91c6aa27bba48fc1Martin Pitt BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
90e633a7901060063e62bf53948c4c239a9f55d1Jason St. John </code></p></div>
33e74db2667103e33f7e47277378612dcdbdfaa5Martin Pitt
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers <p>At first we probe for a <code>User-Agent</code> string that
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers indicates a Netscape Navigator version of 4.x. These versions
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers cannot handle compression of types other than
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers <code>text/html</code>. The versions 4.06, 4.07 and 4.08 also
b534166eaec8fef9902a68f75cab8eeae458b23cMartin Pitt have problems with decompressing html files. Thus, we completely
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers turn off the deflate filter for them.</p>
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers <p>The third <code class="directive"><a href="/mod/mod_setenvif.html#browsermatch">BrowserMatch</a></code>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers directive fixes the guessed identity of the user agent, because
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers the Microsoft Internet Explorer identifies itself also as "Mozilla/4"
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers but is actually able to handle requested compression. Therefore we
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers match against the additional string "MSIE" (<code>\b</code> means
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers "word boundary") in the <code>User-Agent</code> Header and turn off
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers the restrictions defined before.</p>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers <div class="note"><h3>Note</h3>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers The <code>DEFLATE</code> filter is always inserted after RESOURCE
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers filters like PHP or SSI. It never touches internal subrequests.
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers </div>
b534166eaec8fef9902a68f75cab8eeae458b23cMartin Pitt <div class="note"><h3>Note</h3>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers There is a environment variable <code>force-gzip</code>,
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers set via <code class="directive"><a href="/mod/core.html#setenv">SetEnv</a></code>, which
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers will ignore the accept-encoding setting of your browser and will
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers send compressed output.
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers </div>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers <h3><a name="inflate" id="inflate">Output Decompression</a></h3>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers <p>The <code class="module"><a href="/mod/mod_deflate.html">mod_deflate</a></code> module also provides a filter for
ee2babf4c36f9ab65e9ebbe966ed7839c532df45Martin Pitt inflating/uncompressing a gzip compressed response body. In order to activate
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers this feature you have to insert the <code>INFLATE</code> filter into
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers the outputfilter chain using <code class="directive"><a href="/mod/core.html#setoutputfilter">SetOutputFilter</a></code> or <code class="directive"><a href="/mod/mod_mime.html#addoutputfilter">AddOutputFilter</a></code>, for example:</p>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers <div class="example"><p><code>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers &lt;Location /dav-area&gt;<br />
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers <span class="indent">
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers ProxyPass http://example.com/<br />
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers SetOutputFilter INFLATE<br />
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers </span>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers &lt;/Location&gt;
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers </code></p></div>
42a9de1c2513aa348df369080cdd941ef4ab00abMartin Pitt
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers <p>This Example will uncompress gzip'ed output from example.com, so other
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers filters can do further processing with it.
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers </p>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers
42a9de1c2513aa348df369080cdd941ef4ab00abMartin Pitt
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers <h3><a name="input" id="input">Input Decompression</a></h3>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers <p>The <code class="module"><a href="/mod/mod_deflate.html">mod_deflate</a></code> module also provides a filter for
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers decompressing a gzip compressed request body . In order to activate
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers this feature you have to insert the <code>DEFLATE</code> filter into
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers the input filter chain using <code class="directive"><a href="/mod/core.html#setinputfilter">SetInputFilter</a></code> or <code class="directive"><a href="/mod/mod_mime.html#addinputfilter">AddInputFilter</a></code>, for example:</p>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers <div class="example"><p><code>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers &lt;Location /dav-area&gt;<br />
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers <span class="indent">
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers SetInputFilter DEFLATE<br />
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers </span>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers &lt;/Location&gt;
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers </code></p></div>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers
b534166eaec8fef9902a68f75cab8eeae458b23cMartin Pitt <p>Now if a request contains a <code>Content-Encoding:
b534166eaec8fef9902a68f75cab8eeae458b23cMartin Pitt gzip</code> header, the body will be automatically decompressed.
b534166eaec8fef9902a68f75cab8eeae458b23cMartin Pitt Few browsers have the ability to gzip request bodies. However,
b534166eaec8fef9902a68f75cab8eeae458b23cMartin Pitt some special applications actually do support request
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers compression, for instance some <a href="http://www.webdav.org">WebDAV</a> clients.</p>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers <div class="warning"><h3>Note on Content-Length</h3>
b534166eaec8fef9902a68f75cab8eeae458b23cMartin Pitt <p>If you evaluate the request body yourself, <em>don't trust
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers the <code>Content-Length</code> header!</em>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers The Content-Length header reflects the length of the
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers incoming data from the client and <em>not</em> the byte count of
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers the decompressed data stream.</p>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers </div>
b534166eaec8fef9902a68f75cab8eeae458b23cMartin Pitt
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers<div class="section">
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers<h2><a name="proxies" id="proxies">Dealing with proxy servers</a></h2>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers <p>The <code class="module"><a href="/mod/mod_deflate.html">mod_deflate</a></code> module sends a <code>Vary:
78f66c2151813166549e5482a3dccffe4f890b44Martin Pitt Accept-Encoding</code> HTTP response header to alert proxies that
78f66c2151813166549e5482a3dccffe4f890b44Martin Pitt a cached response should be sent only to clients that send the
3f42b51f21171a3166200af3d9966812f1ddd0f0Martin Pitt appropriate <code>Accept-Encoding</code> request header. This
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers prevents compressed content from being sent to a client that will
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers not understand it.</p>
db7c6e6fc85d13ab18eb0d918957210c7476cba6Martin Pitt
42a9de1c2513aa348df369080cdd941ef4ab00abMartin Pitt <p>If you use some special exclusions dependent
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers on, for example, the <code>User-Agent</code> header, you must
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers manually configure an addition to the <code>Vary</code> header
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers to alert proxies of the additional restrictions. For example,
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers in a typical configuration where the addition of the <code>DEFLATE</code>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers filter depends on the <code>User-Agent</code>, you should add:</p>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers <div class="example"><p><code>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers Header append Vary User-Agent
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers </code></p></div>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers <p>If your decision about compression depends on other information
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers than request headers (<em>e.g.</em> HTTP version), you have to set the
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers <code>Vary</code> header to the value <code>*</code>. This prevents
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers compliant proxies from caching entirely.</p>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers <div class="example"><h3>Example</h3><p><code>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers Header set Vary *
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers </code></p></div>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers</div>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers<div class="directive-section"><h2><a name="DeflateBufferSize" id="DeflateBufferSize">DeflateBufferSize</a> <a name="deflatebuffersize" id="deflatebuffersize">Directive</a></h2>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers<table class="directive">
b534166eaec8fef9902a68f75cab8eeae458b23cMartin Pitt<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fragment size to be compressed at one time by zlib</td></tr>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>DeflateBufferSize <var>value</var></code></td></tr>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>DeflateBufferSize 8096</code></td></tr>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
b534166eaec8fef9902a68f75cab8eeae458b23cMartin Pitt<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_deflate</td></tr>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers</table>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers <p>The <code class="directive">DeflateBufferSize</code> directive specifies
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers the size in bytes of the fragments that zlib should compress at one
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers time.</p>
b534166eaec8fef9902a68f75cab8eeae458b23cMartin Pitt
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers</div>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers<div class="directive-section"><h2><a name="DeflateCompressionLevel" id="DeflateCompressionLevel">DeflateCompressionLevel</a> <a name="deflatecompressionlevel" id="deflatecompressionlevel">Directive</a></h2>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers<table class="directive">
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>How much compression do we apply to the output</td></tr>
b534166eaec8fef9902a68f75cab8eeae458b23cMartin Pitt<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>DeflateCompressionLevel <var>value</var></code></td></tr>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>Zlib's default</code></td></tr>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_deflate</td></tr>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>This directive is available since Apache 2.0.45</td></tr>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers</table>
b534166eaec8fef9902a68f75cab8eeae458b23cMartin Pitt <p>The <code class="directive">DeflateCompressionLevel</code> directive specifies
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers what level of compression should be used, the higher the value,
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers the better the compression, but the more CPU time is required to
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers achieve this.</p>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers <p>The value must between 1 (less compression) and 9 (more compression).</p>
b534166eaec8fef9902a68f75cab8eeae458b23cMartin Pitt
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers</div>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers<div class="directive-section"><h2><a name="DeflateFilterNote" id="DeflateFilterNote">DeflateFilterNote</a> <a name="deflatefilternote" id="deflatefilternote">Directive</a></h2>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers<table class="directive">
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Places the compression ratio in a note for logging</td></tr>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>DeflateFilterNote [<var>type</var>] <var>notename</var></code></td></tr>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
b534166eaec8fef9902a68f75cab8eeae458b23cMartin Pitt<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_deflate</td></tr>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td><var>type</var> is available since Apache 2.0.45</td></tr>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers</table>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers <p>The <code class="directive">DeflateFilterNote</code> directive
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers specifies that a note about compression ratios should be attached
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers to the request. The name of the note is the value specified for
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers the directive. You can use that note for statistical purposes by
b534166eaec8fef9902a68f75cab8eeae458b23cMartin Pitt adding the value to your <a href="/logs.html#accesslog">access log</a>.</p>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers <div class="example"><h3>Example</h3><p><code>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers DeflateFilterNote ratio<br />
0787758d26337ec897d9553fe962678fbf0a0962Zbigniew Jędrzejewski-Szmek <br />
0787758d26337ec897d9553fe962678fbf0a0962Zbigniew Jędrzejewski-Szmek LogFormat '"%r" %b (%{ratio}n) "%{User-agent}i"' deflate<br />
0787758d26337ec897d9553fe962678fbf0a0962Zbigniew Jędrzejewski-Szmek CustomLog logs/deflate_log deflate
0787758d26337ec897d9553fe962678fbf0a0962Zbigniew Jędrzejewski-Szmek </code></p></div>
0787758d26337ec897d9553fe962678fbf0a0962Zbigniew Jędrzejewski-Szmek
0787758d26337ec897d9553fe962678fbf0a0962Zbigniew Jędrzejewski-Szmek <p>If you want to extract more accurate values from your logs, you
0787758d26337ec897d9553fe962678fbf0a0962Zbigniew Jędrzejewski-Szmek can use the <var>type</var> argument to specify the type of data
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers left as note for logging. <var>type</var> can be one of:</p>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers <dl>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers <dt><code>Input</code></dt>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers <dd>Store the byte count of the filter's input stream in the note.</dd>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers <dt><code>Output</code></dt>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers <dd>Store the byte count of the filter's output stream in the note.</dd>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers <dt><code>Ratio</code></dt>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers <dd>Store the compression ratio (<code>output/input * 100</code>)
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers in the note. This is the default, if the <var>type</var> argument
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers is omitted.</dd>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers </dl>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers <p>Thus you may log it this way:</p>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers <div class="example"><h3>Accurate Logging</h3><p><code>
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers DeflateFilterNote Input instream<br />
aedc2eddd16e48d468e6ad0aea2caf00c7d37365Kay Sievers DeflateFilterNote Output outstream<br />
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers DeflateFilterNote Ratio ratio<br />
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers <br />
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate<br />
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers CustomLog logs/deflate_log deflate
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers </code></p></div>
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<h3>See also</h3>
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<ul>
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<li><code class="module"><a href="/mod/mod_log_config.html">mod_log_config</a></code></li>
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers</ul>
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers</div>
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<div class="directive-section"><h2><a name="DeflateMemLevel" id="DeflateMemLevel">DeflateMemLevel</a> <a name="deflatememlevel" id="deflatememlevel">Directive</a></h2>
42a9de1c2513aa348df369080cdd941ef4ab00abMartin Pitt<table class="directive">
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>How much memory should be used by zlib for compression</td></tr>
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>DeflateMemLevel <var>value</var></code></td></tr>
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>DeflateMemLevel 9</code></td></tr>
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_deflate</td></tr>
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers</table>
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers <p>The <code class="directive">DeflateMemLevel</code> directive specifies
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers how much memory should be used by zlib for compression
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers (a value between 1 and 9).</p>
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers</div>
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<div class="directive-section"><h2><a name="DeflateWindowSize" id="DeflateWindowSize">DeflateWindowSize</a> <a name="deflatewindowsize" id="deflatewindowsize">Directive</a></h2>
e7627e14dc883ab0ad73c931e4ff0caa1cad6860Zbigniew Jędrzejewski-Szmek<table class="directive">
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Zlib compression window size</td></tr>
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>DeflateWindowSize <var>value</var></code></td></tr>
e7627e14dc883ab0ad73c931e4ff0caa1cad6860Zbigniew Jędrzejewski-Szmek<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>DeflateWindowSize 15</code></td></tr>
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_deflate</td></tr>
b534166eaec8fef9902a68f75cab8eeae458b23cMartin Pitt</table>
e7627e14dc883ab0ad73c931e4ff0caa1cad6860Zbigniew Jędrzejewski-Szmek <p>The <code class="directive">DeflateWindowSize</code> directive specifies the
e7627e14dc883ab0ad73c931e4ff0caa1cad6860Zbigniew Jędrzejewski-Szmek zlib compression window size (a value between 1 and 15). Generally, the
e7627e14dc883ab0ad73c931e4ff0caa1cad6860Zbigniew Jędrzejewski-Szmek higher the window size, the higher can the compression ratio be expected.</p>
e7627e14dc883ab0ad73c931e4ff0caa1cad6860Zbigniew Jędrzejewski-Szmek
e7627e14dc883ab0ad73c931e4ff0caa1cad6860Zbigniew Jędrzejewski-Szmek</div>
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers</div>
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<div class="bottomlang">
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<p><span>Available Languages: </span><a href="/en/mod/mod_deflate.html" title="English">&nbsp;en&nbsp;</a> |
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<a href="/fr/mod/mod_deflate.html" hreflang="fr" rel="alternate" title="Fran�ais">&nbsp;fr&nbsp;</a> |
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<a href="/ja/mod/mod_deflate.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<a href="/ko/mod/mod_deflate.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers</div><div id="footer">
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<p class="apache">Copyright 2009 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers<p class="menu"><a href="/mod/">Modules</a> | <a href="/mod/directives.html">Directives</a> | <a href="/faq/">FAQ</a> | <a href="/glossary.html">Glossary</a> | <a href="/sitemap.html">Sitemap</a></p></div>
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1Kay Sievers</body></html>