]> granicus.if.org Git - apache/blob - docs/manual/mod/mod_deflate.html.en
Fixes to XML. rebuild.
[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</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.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/directives.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 class="directives">Directives</h3>
45 <ul id="toc">
46 <li><img alt="" src="../images/down.gif" /> <a href="#deflatebuffersize">DeflateBufferSize</a></li>
47 <li><img alt="" src="../images/down.gif" /> <a href="#deflatecompressionlevel">DeflateCompressionLevel</a></li>
48 <li><img alt="" src="../images/down.gif" /> <a href="#deflatefilternote">DeflateFilterNote</a></li>
49 <li><img alt="" src="../images/down.gif" /> <a href="#deflatememlevel">DeflateMemLevel</a></li>
50 <li><img alt="" src="../images/down.gif" /> <a href="#deflatewindowsize">DeflateWindowSize</a></li>
51 </ul>
52 <h3>Topics</h3>
53 <ul id="topics">
54 <li><img alt="" src="../images/down.gif" /> <a href="#recommended">Sample Configurations</a></li>
55 <li><img alt="" src="../images/down.gif" /> <a href="#enable">Enabling Compression</a></li>
56 <li><img alt="" src="../images/down.gif" /> <a href="#proxies">Dealing with proxy servers</a></li>
57 </ul><h3>See also</h3>
58 <ul class="seealso">
59 <li><a href="../filter.html">Filters</a></li>
60 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
61 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
62 <div class="section">
63 <h2><a name="recommended" id="recommended">Sample Configurations</a></h2>
64     <p>This is a simple sample configuration for the impatient.</p>
65
66     <div class="example"><h3>Compress only a few types</h3><pre class="prettyprint lang-config">
67       AddOutputFilterByType DEFLATE text/html text/plain text/xml
68       </pre>
69 </div>
70
71     <p>The following configuration, while resulting in more compressed content,
72     is also much more complicated.  Do not use this unless you fully understand
73     all the configuration details.</p>
74
75     <div class="example"><h3>Compress everything except images</h3><pre class="prettyprint lang-config">
76 &lt;Location /&gt;
77     # Insert filter
78     SetOutputFilter DEFLATE
79     
80     # Netscape 4.x has some problems...
81     BrowserMatch ^Mozilla/4         gzip-only-text/html
82     
83     # Netscape 4.06-4.08 have some more problems
84     BrowserMatch ^Mozilla/4\.0[678] no-gzip
85     
86     # MSIE masquerades as Netscape, but it is fine
87     BrowserMatch \bMSIE             !no-gzip !gzip-only-text/html
88     # Don't compress images
89     SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
90     
91     # Make sure proxies don't deliver the wrong content
92     Header append Vary User-Agent env=!dont-vary
93 &lt;/Location&gt;
94       </pre>
95 </div>
96
97 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
98 <div class="section">
99 <h2><a name="enable" id="enable">Enabling Compression</a></h2>
100
101     <h3><a name="output" id="output">Output Compression</a></h3>
102       <p>Compression is implemented by the <code>DEFLATE</code>
103       <a href="../filter.html">filter</a>. The following directive
104       will enable compression for documents in the container where it
105       is placed:</p>
106
107       <pre class="prettyprint lang-config">
108         SetOutputFilter DEFLATE
109       </pre>
110
111
112       <p>Some popular browsers cannot handle compression of all content
113       so you may want to set the <code>gzip-only-text/html</code> note to
114       <code>1</code> to only allow html files to be compressed (see
115       below). If you set this to <em>anything but <code>1</code></em> it
116       will be ignored.</p>
117
118       <p>If you want to restrict the compression to particular MIME types
119       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
120       enabling compression only for the html files of the Apache
121       documentation:</p>
122
123       <pre class="prettyprint lang-config">
124 &lt;Directory "/your-server-root/manual"&gt;
125     AddOutputFilterByType DEFLATE text/html
126 &lt;/Directory&gt;
127       </pre>
128
129
130       <p>For browsers that have problems even with compression of all file
131       types, use the <code class="directive"><a href="../mod/mod_setenvif.html#browsermatch">BrowserMatch</a></code> directive to set the <code>no-gzip</code>
132       note for that particular browser so that no compression will be
133       performed. You may combine <code>no-gzip</code> with <code>gzip-only-text/html</code> to get the best results. In that case
134       the former overrides the latter. Take a look at the following
135       excerpt from the <a href="#recommended">configuration example</a>
136       defined in the section above:</p>
137
138       <pre class="prettyprint lang-config">
139 BrowserMatch ^Mozilla/4         gzip-only-text/html
140 BrowserMatch ^Mozilla/4\.0[678] no-gzip
141 BrowserMatch \bMSIE             !no-gzip !gzip-only-text/html
142       </pre>
143
144
145       <p>At first we probe for a <code>User-Agent</code> string that
146       indicates a Netscape Navigator version of 4.x. These versions
147       cannot handle compression of types other than
148       <code>text/html</code>. The versions 4.06, 4.07 and 4.08 also
149       have problems with decompressing html files. Thus, we completely
150       turn off the deflate filter for them.</p>
151
152       <p>The third <code class="directive"><a href="../mod/mod_setenvif.html#browsermatch">BrowserMatch</a></code>
153       directive fixes the guessed identity of the user agent, because
154       the Microsoft Internet Explorer identifies itself also as "Mozilla/4"
155       but is actually able to handle requested compression. Therefore we
156       match against the additional string "MSIE" (<code>\b</code> means
157       "word boundary") in the <code>User-Agent</code> Header and turn off
158       the restrictions defined before.</p>
159
160       <div class="note"><h3>Note</h3>
161         The <code>DEFLATE</code> filter is always inserted after RESOURCE
162         filters like PHP or SSI. It never touches internal subrequests.
163       </div>
164       <div class="note"><h3>Note</h3>
165         There is a environment variable <code>force-gzip</code>,
166         set via <code class="directive"><a href="../mod/mod_env.html#setenv">SetEnv</a></code>, which
167         will ignore the accept-encoding setting of your browser and will
168         send compressed output.
169       </div>
170
171     
172     <h3><a name="inflate" id="inflate">Output Decompression</a></h3>
173       <p>The <code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code> module also provides a filter for
174       inflating/uncompressing a gzip compressed response body. In order to activate
175       this feature you have to insert the <code>INFLATE</code> filter into
176       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>
177
178       <pre class="prettyprint lang-config">
179 &lt;Location /dav-area&gt;
180     ProxyPass http://example.com/
181     SetOutputFilter INFLATE
182 &lt;/Location&gt;
183       </pre>
184
185
186       <p>This Example will uncompress gzip'ed output from example.com, so other
187       filters can do further processing with it.
188       </p>
189
190     
191     <h3><a name="input" id="input">Input Decompression</a></h3>
192       <p>The <code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code> module also provides a filter for
193       decompressing a gzip compressed request body . In order to activate
194       this feature you have to insert the <code>DEFLATE</code> filter into
195       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>
196
197       <pre class="prettyprint lang-config">
198 &lt;Location /dav-area&gt;
199     SetInputFilter DEFLATE
200 &lt;/Location&gt;
201       </pre>
202
203
204       <p>Now if a request contains a <code>Content-Encoding:
205       gzip</code> header, the body will be automatically decompressed.
206       Few browsers have the ability to gzip request bodies. However,
207       some special applications actually do support request
208       compression, for instance some <a href="http://www.webdav.org">WebDAV</a> clients.</p>
209
210       <div class="warning"><h3>Note on Content-Length</h3>
211         <p>If you evaluate the request body yourself, <em>don't trust
212         the <code>Content-Length</code> header!</em>
213         The Content-Length header reflects the length of the
214         incoming data from the client and <em>not</em> the byte count of
215         the decompressed data stream.</p>
216       </div>
217     
218 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
219 <div class="section">
220 <h2><a name="proxies" id="proxies">Dealing with proxy servers</a></h2>
221
222     <p>The <code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code> module sends a <code>Vary:
223     Accept-Encoding</code> HTTP response header to alert proxies that
224     a cached response should be sent only to clients that send the
225     appropriate <code>Accept-Encoding</code> request header.  This
226     prevents compressed content from being sent to a client that will
227     not understand it.</p>
228
229     <p>If you use some special exclusions dependent
230     on, for example, the <code>User-Agent</code> header, you must
231     manually configure an addition to the <code>Vary</code> header
232     to alert proxies of the additional restrictions.  For example,
233     in a typical configuration where the addition of the <code>DEFLATE</code>
234     filter depends on the <code>User-Agent</code>, you should add:</p>
235
236     <pre class="prettyprint lang-config">
237       Header append Vary User-Agent
238     </pre>
239
240
241     <p>If your decision about compression depends on other information
242     than request headers (<em>e.g.</em> HTTP version), you have to set the
243     <code>Vary</code> header to the value <code>*</code>. This prevents
244     compliant proxies from caching entirely.</p>
245
246     <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">
247       Header set Vary *
248       </pre>
249 </div>
250 </div>
251 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
252 <div class="directive-section"><h2><a name="DeflateBufferSize" id="DeflateBufferSize">DeflateBufferSize</a> <a name="deflatebuffersize" id="deflatebuffersize">Directive</a></h2>
253 <table class="directive">
254 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fragment size to be compressed at one time by zlib</td></tr>
255 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>DeflateBufferSize <var>value</var></code></td></tr>
256 <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>DeflateBufferSize 8096</code></td></tr>
257 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
258 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
259 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_deflate</td></tr>
260 </table>
261     <p>The <code class="directive">DeflateBufferSize</code> directive specifies
262     the size in bytes of the fragments that zlib should compress at one
263     time.</p>
264
265 </div>
266 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
267 <div class="directive-section"><h2><a name="DeflateCompressionLevel" id="DeflateCompressionLevel">DeflateCompressionLevel</a> <a name="deflatecompressionlevel" id="deflatecompressionlevel">Directive</a></h2>
268 <table class="directive">
269 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>How much compression do we apply to the output</td></tr>
270 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>DeflateCompressionLevel <var>value</var></code></td></tr>
271 <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>Zlib's default</code></td></tr>
272 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
273 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
274 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_deflate</td></tr>
275 <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>This directive is available since Apache 2.0.45</td></tr>
276 </table>
277     <p>The <code class="directive">DeflateCompressionLevel</code> directive specifies
278         what level of compression should be used, the higher the value,
279         the better the compression, but the more CPU time is required to
280         achieve this.</p>
281     <p>The value must between 1 (less compression) and 9 (more compression).</p>
282
283 </div>
284 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
285 <div class="directive-section"><h2><a name="DeflateFilterNote" id="DeflateFilterNote">DeflateFilterNote</a> <a name="deflatefilternote" id="deflatefilternote">Directive</a></h2>
286 <table class="directive">
287 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Places the compression ratio in a note for logging</td></tr>
288 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>DeflateFilterNote [<var>type</var>] <var>notename</var></code></td></tr>
289 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
290 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
291 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_deflate</td></tr>
292 <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td><var>type</var> is available since Apache 2.0.45</td></tr>
293 </table>
294     <p>The <code class="directive">DeflateFilterNote</code> directive
295     specifies that a note about compression ratios should be attached
296     to the request. The name of the note is the value specified for
297     the directive. You can use that note for statistical purposes by
298     adding the value to your <a href="../logs.html#accesslog">access log</a>.</p>
299
300     <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">
301       DeflateFilterNote ratio
302     
303       LogFormat '"%r" %b (%{ratio}n) "%{User-agent}i"' deflate
304       CustomLog logs/deflate_log deflate
305       </pre>
306 </div>
307
308     <p>If you want to extract more accurate values from your logs, you
309     can use the <var>type</var> argument to specify the type of data
310     left as note for logging. <var>type</var> can be one of:</p>
311
312     <dl>
313       <dt><code>Input</code></dt>
314       <dd>Store the byte count of the filter's input stream in the note.</dd>
315
316       <dt><code>Output</code></dt>
317       <dd>Store the byte count of the filter's output stream in the note.</dd>
318
319       <dt><code>Ratio</code></dt>
320       <dd>Store the compression ratio (<code>output/input * 100</code>)
321       in the note. This is the default, if the <var>type</var> argument
322       is omitted.</dd>
323     </dl>
324
325     <p>Thus you may log it this way:</p>
326
327     <div class="example"><h3>Accurate Logging</h3><pre class="prettyprint lang-config">
328 DeflateFilterNote Input instream
329 DeflateFilterNote Output outstream
330 DeflateFilterNote Ratio ratio
331
332 LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate
333 CustomLog logs/deflate_log deflate
334 </pre>
335 </div>
336
337 <h3>See also</h3>
338 <ul>
339 <li><code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code></li>
340 </ul>
341 </div>
342 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
343 <div class="directive-section"><h2><a name="DeflateMemLevel" id="DeflateMemLevel">DeflateMemLevel</a> <a name="deflatememlevel" id="deflatememlevel">Directive</a></h2>
344 <table class="directive">
345 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>How much memory should be used by zlib for compression</td></tr>
346 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>DeflateMemLevel <var>value</var></code></td></tr>
347 <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>DeflateMemLevel 9</code></td></tr>
348 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
349 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
350 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_deflate</td></tr>
351 </table>
352     <p>The <code class="directive">DeflateMemLevel</code> directive specifies
353     how much memory should be used by zlib for compression
354     (a value between 1 and 9).</p>
355
356 </div>
357 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
358 <div class="directive-section"><h2><a name="DeflateWindowSize" id="DeflateWindowSize">DeflateWindowSize</a> <a name="deflatewindowsize" id="deflatewindowsize">Directive</a></h2>
359 <table class="directive">
360 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Zlib compression window size</td></tr>
361 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>DeflateWindowSize <var>value</var></code></td></tr>
362 <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>DeflateWindowSize 15</code></td></tr>
363 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
364 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
365 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_deflate</td></tr>
366 </table>
367     <p>The <code class="directive">DeflateWindowSize</code> directive specifies the
368     zlib compression window size (a value between 1 and 15). Generally, the
369     higher the window size, the higher can the compression ratio be expected.</p>
370
371 </div>
372 </div>
373 <div class="bottomlang">
374 <p><span>Available Languages: </span><a href="../en/mod/mod_deflate.html" title="English">&nbsp;en&nbsp;</a> |
375 <a href="../fr/mod/mod_deflate.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
376 <a href="../ja/mod/mod_deflate.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
377 <a href="../ko/mod/mod_deflate.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
378 </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>
379 <script type="text/javascript"><!--//--><![CDATA[//><!--
380 var comments_shortname = 'httpd';
381 var comments_identifier = 'http://httpd.apache.org/docs/trunk/mod/mod_deflate.html';
382 (function(w, d) {
383     if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
384         d.write('<div id="comments_thread"><\/div>');
385         var s = d.createElement('script');
386         s.type = 'text/javascript';
387         s.async = true;
388         s.src = 'https://c.apaste.info/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
389         (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
390     }
391     else {
392         d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
393     }
394 })(window, document);
395 //--><!]]></script></div><div id="footer">
396 <p class="apache">Copyright 2012 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>
397 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.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[//><!--
398 if (typeof(prettyPrint) !== 'undefined') {
399     prettyPrint();
400 }
401 //--><!]]></script>
402 </body></html>