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