]> granicus.if.org Git - apache/blob - docs/manual/mod/mod_deflate.html.en
Quote path/URL arguments to Proxy* directives.
[apache] / docs / manual / mod / mod_deflate.html.en
1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head><!--
4         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5               This file is generated from xml source: DO NOT EDIT
6         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
7       -->
8 <title>mod_deflate - Apache HTTP Server Version 2.5</title>
9 <link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
10 <link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
11 <link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
12 <script src="../style/scripts/prettify.min.js" type="text/javascript">
13 </script>
14
15 <link href="../images/favicon.ico" rel="shortcut icon" /></head>
16 <body>
17 <div id="page-header">
18 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p>
19 <p class="apache">Apache HTTP Server Version 2.5</p>
20 <img alt="" src="../images/feather.gif" /></div>
21 <div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="../images/left.gif" /></a></div>
22 <div id="path">
23 <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.5</a> &gt; <a href="./">Modules</a></div>
24 <div id="page-content">
25 <div id="preamble"><h1>Apache Module mod_deflate</h1>
26 <div class="toplang">
27 <p><span>Available Languages: </span><a href="../en/mod/mod_deflate.html" title="English">&nbsp;en&nbsp;</a> |
28 <a href="../fr/mod/mod_deflate.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
29 <a href="../ja/mod/mod_deflate.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
30 <a href="../ko/mod/mod_deflate.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
31 </div>
32 <table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Compress content before it is delivered to the
33 client</td></tr>
34 <tr><th><a href="module-dict.html#Status">Status:</a></th><td>Extension</td></tr>
35 <tr><th><a href="module-dict.html#ModuleIdentifier">Module Identifier:</a></th><td>deflate_module</td></tr>
36 <tr><th><a href="module-dict.html#SourceFile">Source File:</a></th><td>mod_deflate.c</td></tr></table>
37 <h3>Summary</h3>
38
39     <p>The <code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code> module provides
40     the <code>DEFLATE</code> output filter that allows output from
41     your server to be compressed before being sent to the client over
42     the network.</p>
43 </div>
44 <div id="quickview"><h3>Topics</h3>
45 <ul id="topics">
46 <li><img alt="" src="../images/down.gif" /> <a href="#recommended">Sample Configurations</a></li>
47 <li><img alt="" src="../images/down.gif" /> <a href="#enable">Enabling Compression</a></li>
48 <li><img alt="" src="../images/down.gif" /> <a href="#proxies">Dealing with proxy servers</a></li>
49 <li><img alt="" src="../images/down.gif" /> <a href="#precompressed">Serving pre-compressed
50 content</a></li>
51 </ul><h3 class="directives">Directives</h3>
52 <ul id="toc">
53 <li><img alt="" src="../images/down.gif" /> <a href="#deflatealteretag">DeflateAlterETag</a></li>
54 <li><img alt="" src="../images/down.gif" /> <a href="#deflatebuffersize">DeflateBufferSize</a></li>
55 <li><img alt="" src="../images/down.gif" /> <a href="#deflatecompressionlevel">DeflateCompressionLevel</a></li>
56 <li><img alt="" src="../images/down.gif" /> <a href="#deflatefilternote">DeflateFilterNote</a></li>
57 <li><img alt="" src="../images/down.gif" /> <a href="#deflateinflatelimitrequestbody">DeflateInflateLimitRequestBody</a></li>
58 <li><img alt="" src="../images/down.gif" /> <a href="#deflateinflateratioburst">DeflateInflateRatioBurst</a></li>
59 <li><img alt="" src="../images/down.gif" /> <a href="#deflateinflateratiolimit">DeflateInflateRatioLimit</a></li>
60 <li><img alt="" src="../images/down.gif" /> <a href="#deflatememlevel">DeflateMemLevel</a></li>
61 <li><img alt="" src="../images/down.gif" /> <a href="#deflatewindowsize">DeflateWindowSize</a></li>
62 </ul>
63 <h3>See also</h3>
64 <ul class="seealso">
65 <li><a href="../filter.html">Filters</a></li>
66 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
67 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
68 <div class="section">
69 <h2><a name="recommended" id="recommended">Sample Configurations</a></h2>
70     <div class="warning"><h3>Compression and TLS</h3>
71         <p>Some web applications are vulnerable to an information disclosure
72         attack when a TLS connection carries deflate compressed data. For more
73         information, review the details of the "BREACH" family of attacks.</p>
74     </div>
75     <p>This is a simple configuration that compresses common text-based content types.</p>
76
77     <div class="example"><h3>Compress only a few types</h3><pre class="prettyprint lang-config">AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript</pre>
78 </div>
79
80 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
81 <div class="section">
82 <h2><a name="enable" id="enable">Enabling Compression</a></h2>
83     <div class="warning"><h3>Compression and TLS</h3>
84         <p>Some web applications are vulnerable to an information disclosure
85         attack when a TLS connection carries deflate compressed data. For more
86         information, review the details of the "BREACH" family of attacks.</p>
87     </div>
88
89     <h3><a name="output" id="output">Output Compression</a></h3>
90       <p>Compression is implemented by the <code>DEFLATE</code>
91       <a href="../filter.html">filter</a>. The following directive
92       will enable compression for documents in the container where it
93       is placed:</p>
94
95       <pre class="prettyprint lang-config">SetOutputFilter DEFLATE
96 SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip</pre>
97
98
99       <p>If you want to restrict the compression to particular MIME types
100       in general, you may use the <code class="directive"><a href="../mod/mod_filter.html#addoutputfilterbytype">AddOutputFilterByType</a></code> directive. Here is an example of
101       enabling compression only for the html files of the Apache
102       documentation:</p>
103
104       <pre class="prettyprint lang-config">&lt;Directory "/your-server-root/manual"&gt;
105     AddOutputFilterByType DEFLATE text/html
106 &lt;/Directory&gt;</pre>
107
108
109       <div class="note"><h3>Note</h3>
110         The <code>DEFLATE</code> filter is always inserted after RESOURCE
111         filters like PHP or SSI. It never touches internal subrequests.
112       </div>
113       <div class="note"><h3>Note</h3>
114         There is an environment variable <code>force-gzip</code>,
115         set via <code class="directive"><a href="../mod/mod_env.html#setenv">SetEnv</a></code>, which
116         will ignore the accept-encoding setting of your browser and will
117         send compressed output.
118       </div>
119
120     
121     <h3><a name="inflate" id="inflate">Output Decompression</a></h3>
122       <p>The <code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code> module also provides a filter for
123       inflating/uncompressing a gzip compressed response body. In order to activate
124       this feature you have to insert the <code>INFLATE</code> filter into
125       the output filter 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>
126
127       <pre class="prettyprint lang-config">&lt;Location "/dav-area"&gt;
128     ProxyPass "http://example.com/"
129     SetOutputFilter INFLATE
130 &lt;/Location&gt;</pre>
131
132
133       <p>This Example will uncompress gzip'ed output from example.com, so other
134       filters can do further processing with it.
135       </p>
136
137     
138     <h3><a name="input" id="input">Input Decompression</a></h3>
139       <p>The <code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code> module also provides a filter for
140       decompressing a gzip compressed request body . In order to activate
141       this feature you have to insert the <code>DEFLATE</code> filter into
142       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>
143
144       <pre class="prettyprint lang-config">&lt;Location "/dav-area"&gt;
145     SetInputFilter DEFLATE
146 &lt;/Location&gt;</pre>
147
148
149       <p>Now if a request contains a <code>Content-Encoding:
150       gzip</code> header, the body will be automatically decompressed.
151       Few browsers have the ability to gzip request bodies. However,
152       some special applications actually do support request
153       compression, for instance some <a href="http://www.webdav.org">WebDAV</a> clients.</p>
154
155       <div class="warning"><h3>Note on Content-Length</h3>
156         <p>If you evaluate the request body yourself, <em>don't trust
157         the <code>Content-Length</code> header!</em>
158         The Content-Length header reflects the length of the
159         incoming data from the client and <em>not</em> the byte count of
160         the decompressed data stream.</p>
161       </div>
162     
163 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
164 <div class="section">
165 <h2><a name="proxies" id="proxies">Dealing with proxy servers</a></h2>
166
167     <p>The <code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code> module sends a <code>Vary:
168     Accept-Encoding</code> HTTP response header to alert proxies that
169     a cached response should be sent only to clients that send the
170     appropriate <code>Accept-Encoding</code> request header.  This
171     prevents compressed content from being sent to a client that will
172     not understand it.</p>
173
174     <p>If you use some special exclusions dependent
175     on, for example, the <code>User-Agent</code> header, you must
176     manually configure an addition to the <code>Vary</code> header
177     to alert proxies of the additional restrictions.  For example,
178     in a typical configuration where the addition of the <code>DEFLATE</code>
179     filter depends on the <code>User-Agent</code>, you should add:</p>
180
181     <pre class="prettyprint lang-config">Header append Vary User-Agent</pre>
182
183
184     <p>If your decision about compression depends on other information
185     than request headers (<em>e.g.</em> HTTP version), you have to set the
186     <code>Vary</code> header to the value <code>*</code>. This prevents
187     compliant proxies from caching entirely.</p>
188
189     <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">Header set Vary *</pre>
190 </div>
191 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
192 <div class="section">
193 <h2><a name="precompressed" id="precompressed">Serving pre-compressed
194 content</a></h2>
195
196     <p>Since <code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code> re-compresses content each 
197     time a request is made, some performance benefit can be derived by
198     pre-compressing the content and telling mod_deflate to serve them
199     without re-compressing them. This may be accomplished using a
200     configuration like the following:</p>
201
202     <pre class="prettyprint lang-config">&lt;IfModule mod_headers.c&gt;
203     # Serve gzip compressed CSS files if they exist 
204     # and the client accepts gzip.
205     RewriteCond %{HTTP:Accept-encoding} gzip
206     RewriteCond %{REQUEST_FILENAME}\.gz -s
207     RewriteRule ^(.*)\.css $1\.css\.gz [QSA]
208
209     # Serve gzip compressed JS files if they exist 
210     # and the client accepts gzip.
211     RewriteCond %{HTTP:Accept-encoding} gzip
212     RewriteCond %{REQUEST_FILENAME}\.gz -s
213     RewriteRule ^(.*)\.js $1\.js\.gz [QSA]
214
215
216     # Serve correct content types, and prevent mod_deflate double gzip.
217     RewriteRule \.css\.gz$ - [T=text/css,E=no-gzip:1]
218     RewriteRule \.js\.gz$ - [T=text/javascript,E=no-gzip:1]
219
220
221     &lt;FilesMatch "(\.js\.gz|\.css\.gz)$"&gt;
222       # Serve correct encoding type.
223       Header append Content-Encoding gzip
224
225       # Force proxies to cache gzipped &amp; 
226       # non-gzipped css/js files separately.
227       Header append Vary Accept-Encoding
228     &lt;/FilesMatch&gt;
229 &lt;/IfModule&gt;</pre>
230
231
232 </div>
233 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
234 <div class="directive-section"><h2><a name="DeflateAlterETag" id="DeflateAlterETag">DeflateAlterETag</a> <a name="deflatealteretag" id="deflatealteretag">Directive</a></h2>
235 <table class="directive">
236 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>How the outgoing ETag header should be modified during compression</td></tr>
237 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>DeflateAlterETag AddSuffix|NoChange|Remove</code></td></tr>
238 <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>DeflateAlterETag AddSuffix</code></td></tr>
239 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
240 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
241 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_deflate</td></tr>
242 </table>
243     <p>The <code class="directive">DeflateAlterETag</code> directive specifies
244     how the ETag hader should be altered when a response is compressed.</p>
245     <dl>
246     <dt>AddSuffix</dt>
247     <dd><p>Append the compression method onto the end of the ETag, causing 
248         compressed and uncompressed representations to have unique ETags.  
249         This has been the default since 2.4.0, but prevents serving 
250         "HTTP Not Modified" (304) responses to conditional requests for 
251         compressed content.</p></dd>
252     <dt>NoChange</dt>
253     <dd><p>Don't change the ETag on a compressed response. This was the default
254         prior to 2.4.0, but does not satisfy the HTTP/1.1 property that all
255         representations of the same resource have unique ETags. </p></dd>
256     <dt>Remove</dt>
257     <dd><p>Remove the ETag header from compressed responses. This prevents 
258         some conditional requests from being possible, but avoids the 
259         shortcomings of the preceding options.  </p></dd>
260     </dl>
261
262 </div>
263 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
264 <div class="directive-section"><h2><a name="DeflateBufferSize" id="DeflateBufferSize">DeflateBufferSize</a> <a name="deflatebuffersize" id="deflatebuffersize">Directive</a></h2>
265 <table class="directive">
266 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fragment size to be compressed at one time by zlib</td></tr>
267 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>DeflateBufferSize <var>value</var></code></td></tr>
268 <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>DeflateBufferSize 8096</code></td></tr>
269 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
270 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
271 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_deflate</td></tr>
272 </table>
273     <p>The <code class="directive">DeflateBufferSize</code> directive specifies
274     the size in bytes of the fragments that zlib should compress at one
275     time.</p>
276
277 </div>
278 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
279 <div class="directive-section"><h2><a name="DeflateCompressionLevel" id="DeflateCompressionLevel">DeflateCompressionLevel</a> <a name="deflatecompressionlevel" id="deflatecompressionlevel">Directive</a></h2>
280 <table class="directive">
281 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>How much compression do we apply to the output</td></tr>
282 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>DeflateCompressionLevel <var>value</var></code></td></tr>
283 <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>Zlib's default</code></td></tr>
284 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
285 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
286 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_deflate</td></tr>
287 </table>
288     <p>The <code class="directive">DeflateCompressionLevel</code> directive specifies
289         what level of compression should be used, the higher the value,
290         the better the compression, but the more CPU time is required to
291         achieve this.</p>
292     <p>The value must between 1 (less compression) and 9 (more compression).</p>
293
294 </div>
295 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
296 <div class="directive-section"><h2><a name="DeflateFilterNote" id="DeflateFilterNote">DeflateFilterNote</a> <a name="deflatefilternote" id="deflatefilternote">Directive</a></h2>
297 <table class="directive">
298 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Places the compression ratio in a note for logging</td></tr>
299 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>DeflateFilterNote [<var>type</var>] <var>notename</var></code></td></tr>
300 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
301 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
302 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_deflate</td></tr>
303 </table>
304     <p>The <code class="directive">DeflateFilterNote</code> directive
305     specifies that a note about compression ratios should be attached
306     to the request. The name of the note is the value specified for
307     the directive. You can use that note for statistical purposes by
308     adding the value to your <a href="../logs.html#accesslog">access log</a>.</p>
309
310     <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">      DeflateFilterNote ratio
311     
312       LogFormat '"%r" %b (%{ratio}n) "%{User-agent}i"' deflate
313       CustomLog logs/deflate_log deflate</pre>
314 </div>
315
316     <p>If you want to extract more accurate values from your logs, you
317     can use the <var>type</var> argument to specify the type of data
318     left as a note for logging. <var>type</var> can be one of:</p>
319
320     <dl>
321       <dt><code>Input</code></dt>
322       <dd>Store the byte count of the filter's input stream in the note.</dd>
323
324       <dt><code>Output</code></dt>
325       <dd>Store the byte count of the filter's output stream in the note.</dd>
326
327       <dt><code>Ratio</code></dt>
328       <dd>Store the compression ratio (<code>output/input * 100</code>)
329       in the note. This is the default, if the <var>type</var> argument
330       is omitted.</dd>
331     </dl>
332
333     <p>Thus you may log it this way:</p>
334
335     <div class="example"><h3>Accurate Logging</h3><pre class="prettyprint lang-config">DeflateFilterNote Input instream
336 DeflateFilterNote Output outstream
337 DeflateFilterNote Ratio ratio
338
339 LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate
340 CustomLog logs/deflate_log deflate</pre>
341 </div>
342
343 <h3>See also</h3>
344 <ul>
345 <li><code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code></li>
346 </ul>
347 </div>
348 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
349 <div class="directive-section"><h2><a name="DeflateInflateLimitRequestBody" id="DeflateInflateLimitRequestBody">DeflateInflateLimitRequestBody</a> <a name="deflateinflatelimitrequestbody" id="deflateinflatelimitrequestbody">Directive</a></h2>
350 <table class="directive">
351 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Maximum size of inflated request bodies</td></tr>
352 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>DeflateInflateLimitRequestBody<var>value</var></code></td></tr>
353 <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>None, but LimitRequestBody applies after deflation</code></td></tr>
354 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
355 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
356 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_deflate</td></tr>
357 <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>2.4.10 and later</td></tr>
358 </table>
359     <p>The <code class="directive">DeflateInflateLimitRequestBody</code> directive 
360         specifies the maximum size of an inflated request body. If it is unset,
361         <code class="directive"><a href="../mod/core.html#limitrequestbody">LimitRequestBody</a></code> is applied to the
362         inflated body.</p>
363
364 </div>
365 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
366 <div class="directive-section"><h2><a name="DeflateInflateRatioBurst" id="DeflateInflateRatioBurst">DeflateInflateRatioBurst</a> <a name="deflateinflateratioburst" id="deflateinflateratioburst">Directive</a></h2>
367 <table class="directive">
368 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Maximum number of times the inflation ratio for request bodies 
369              can be crossed</td></tr>
370 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>DeflateInflateRatioBurst <var>value</var></code></td></tr>
371 <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>3</code></td></tr>
372 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
373 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
374 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_deflate</td></tr>
375 <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>2.4.10 and later</td></tr>
376 </table>
377     <p>The <code class="directive">DeflateInflateRatioBurst</code> directive 
378        specifies the maximum number of times the 
379        <code class="directive">DeflateInflateRatioLimit</code> can be crossed before 
380        terminating the request.</p>
381
382 </div>
383 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
384 <div class="directive-section"><h2><a name="DeflateInflateRatioLimit" id="DeflateInflateRatioLimit">DeflateInflateRatioLimit</a> <a name="deflateinflateratiolimit" id="deflateinflateratiolimit">Directive</a></h2>
385 <table class="directive">
386 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Maximum inflation ratio for request bodies</td></tr>
387 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>DeflateInflateRatioLimit <var>value</var></code></td></tr>
388 <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>200</code></td></tr>
389 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
390 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
391 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_deflate</td></tr>
392 <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>2.4.10 and later</td></tr>
393 </table>
394     <p>The <code class="directive">DeflateInflateRatioLimit</code> directive 
395         specifies the maximum ratio of deflated to inflated size of an 
396         inflated request body. This ratio is checked as the body is
397         streamed in, and if crossed more than 
398         <code class="directive">DeflateInflateRatioBurst</code> times, the request
399         will be terminated.</p>
400
401 </div>
402 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
403 <div class="directive-section"><h2><a name="DeflateMemLevel" id="DeflateMemLevel">DeflateMemLevel</a> <a name="deflatememlevel" id="deflatememlevel">Directive</a></h2>
404 <table class="directive">
405 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>How much memory should be used by zlib for compression</td></tr>
406 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>DeflateMemLevel <var>value</var></code></td></tr>
407 <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>DeflateMemLevel 9</code></td></tr>
408 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
409 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
410 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_deflate</td></tr>
411 </table>
412     <p>The <code class="directive">DeflateMemLevel</code> directive specifies
413     how much memory should be used by zlib for compression
414     (a value between 1 and 9).</p>
415
416 </div>
417 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
418 <div class="directive-section"><h2><a name="DeflateWindowSize" id="DeflateWindowSize">DeflateWindowSize</a> <a name="deflatewindowsize" id="deflatewindowsize">Directive</a></h2>
419 <table class="directive">
420 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Zlib compression window size</td></tr>
421 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>DeflateWindowSize <var>value</var></code></td></tr>
422 <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>DeflateWindowSize 15</code></td></tr>
423 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
424 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
425 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_deflate</td></tr>
426 </table>
427     <p>The <code class="directive">DeflateWindowSize</code> directive specifies the
428     zlib compression window size (a value between 1 and 15). Generally, the
429     higher the window size, the higher can the compression ratio be expected.</p>
430
431 </div>
432 </div>
433 <div class="bottomlang">
434 <p><span>Available Languages: </span><a href="../en/mod/mod_deflate.html" title="English">&nbsp;en&nbsp;</a> |
435 <a href="../fr/mod/mod_deflate.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
436 <a href="../ja/mod/mod_deflate.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
437 <a href="../ko/mod/mod_deflate.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
438 </div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Comments</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
439 <script type="text/javascript"><!--//--><![CDATA[//><!--
440 var comments_shortname = 'httpd';
441 var comments_identifier = 'http://httpd.apache.org/docs/trunk/mod/mod_deflate.html';
442 (function(w, d) {
443     if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
444         d.write('<div id="comments_thread"><\/div>');
445         var s = d.createElement('script');
446         s.type = 'text/javascript';
447         s.async = true;
448         s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
449         (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
450     }
451     else {
452         d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
453     }
454 })(window, document);
455 //--><!]]></script></div><div id="footer">
456 <p class="apache">Copyright 2015 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>
457 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
458 if (typeof(prettyPrint) !== 'undefined') {
459     prettyPrint();
460 }
461 //--><!]]></script>
462 </body></html>