]> granicus.if.org Git - apache/commitdiff
Update transformations.
authorGraham Leggett <minfrin@apache.org>
Mon, 1 Nov 2010 09:52:12 +0000 (09:52 +0000)
committerGraham Leggett <minfrin@apache.org>
Mon, 1 Nov 2010 09:52:12 +0000 (09:52 +0000)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1029588 13f79535-47bb-0310-9956-ffa450edef68

docs/manual/mod/index.html.en
docs/manual/mod/mod_cache.html.en
docs/manual/mod/mod_disk_cache.html.en
docs/manual/new_features_2_4.html.en
docs/manual/new_features_2_4.xml

index c20ae357c154e80cf20b04fa9d09077bd0c0217e..9be910bbfefd4ed2d4fc02c45a79cf79d4c0b27f 100644 (file)
@@ -100,7 +100,7 @@ address)</dd>
     automatically, similar to the Unix <code>ls</code> command or the
     Win32 <code>dir</code> shell command</dd>
 <dt><a href="mod_buffer.html" id="B" name="B">mod_buffer</a></dt><dd>Support for request buffering</dd>
-<dt><a href="mod_cache.html" id="C" name="C">mod_cache</a></dt><dd>Content cache keyed to URIs.</dd>
+<dt><a href="mod_cache.html" id="C" name="C">mod_cache</a></dt><dd>RFC 2616 compliant HTTP caching filter.</dd>
 <dt><a href="mod_cern_meta.html">mod_cern_meta</a></dt><dd>CERN httpd metafile semantics</dd>
 <dt><a href="mod_cgi.html">mod_cgi</a></dt><dd>Execution of CGI scripts</dd>
 <dt><a href="mod_cgid.html">mod_cgid</a></dt><dd>Execution of CGI scripts using an
@@ -116,7 +116,7 @@ client</dd>
 <dt><a href="mod_dialup.html">mod_dialup</a></dt><dd>Send static content at a bandwidth rate limit, defined by the various old modem standards</dd>
 <dt><a href="mod_dir.html">mod_dir</a></dt><dd>Provides for "trailing slash" redirects and
     serving directory index files</dd>
-<dt><a href="mod_disk_cache.html">mod_disk_cache</a></dt><dd>Content cache storage manager keyed to URIs</dd>
+<dt><a href="mod_disk_cache.html">mod_disk_cache</a></dt><dd>Disk based storage module for the HTTP caching filter.</dd>
 <dt><a href="mod_dumpio.html">mod_dumpio</a></dt><dd>Dumps all I/O to error log as desired.</dd>
 <dt><a href="mod_echo.html" id="E" name="E">mod_echo</a></dt><dd>A simple echo server to illustrate protocol 
 modules</dd>
index fe65c9ab2e13ff3195ae33486c1475de89221760..aa3e06604758041b551c100a03a1b6dfd3329637 100644 (file)
@@ -26,7 +26,7 @@
 <a href="../ja/mod/mod_cache.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
 <a href="../ko/mod/mod_cache.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
 </div>
-<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Content cache keyed to URIs.</td></tr>
+<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>RFC 2616 compliant HTTP caching filter.</td></tr>
 <tr><th><a href="module-dict.html#Status">Status:</a></th><td>Extension</td></tr>
 <tr><th><a href="module-dict.html#ModuleIdentifier">Module Identifier:</a></th><td>cache_module</td></tr>
 <tr><th><a href="module-dict.html#SourceFile">Source File:</a></th><td>mod_cache.c</td></tr></table>
     wish to limit access by client host name, address or environment
     variable.</div>  
 
-    <p><code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> implements an <a href="http://www.ietf.org/rfc/rfc2616.txt">RFC 2616</a> compliant HTTP
-    content cache that can be used to cache either local or proxied content.
-    <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> requires the services of one or more storage
-    management modules. One storage management module is included in
+    <p><code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> implements an <a href="http://www.ietf.org/rfc/rfc2616.txt">RFC 2616</a> compliant
+    <strong>HTTP content caching filter</strong>, with support for the caching
+    of content negotiated responses containing the Vary header.</p>
+
+    <p>RFC 2616 compliant caching provides a mechanism to verify whether
+    stale or expired content is still fresh, and can represent a significant
+    performance boost when the origin server supports <strong>conditional
+    requests</strong> by honouring the
+    <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.26">If-None-Match</a>
+    HTTP request header. Content is only regenerated from scratch when the content
+    has changed, and not when the cached entry expires.</p>
+
+    <p>As a filter, <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> can be placed in front of
+    content originating from any handler, including <strong>flat
+    files</strong> (served from a slow disk cached on a fast disk), the output
+    of a <strong>CGI script</strong> or <strong>dynamic content
+    generator</strong>, or content <strong>proxied from another
+    server</strong>.</p>
+
+    <p>In the default configuration, <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> inserts the
+    caching filter as far forward as possible within the filter stack,
+    utilising the <strong>quick handler</strong> to bypass all per request
+    processing when returning content to the client. In this mode of
+    operation, <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> may be thought of as a caching
+    proxy server bolted to the front of the webserver, while running within
+    the webserver itself.</p>
+
+    <p>When the quick handler is switched off using the
+    <code class="directive"><a href="#cachequickhandler">CacheQuickHandler</a></code> directive,
+    it becomes possible to insert the <strong>CACHE</strong> filter at a
+    point in the filter stack chosen by the administrator. This provides the
+    opportunity to cache content before that content is personalised by the
+    <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> filter, or optionally compressed by the
+    <code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code> filter.</p>
+
+    <p>Under normal operation, <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> will respond to
+    and can be controlled by the
+    <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9">Cache-Control</a>
+    and
+    <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.32">Pragma</a>
+    headers sent from a client in a request, or from a
+    server within a response. Under exceptional circumstances,
+    <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> can be configured to override these headers
+    and force site specific behaviour, however such behaviour will be limited
+    to this cache only, and will not affect the operation of other caches
+    that may exist between the client and server, and as a result is not
+    recommended unless strictly necessary.</p>
+
+    <p>RFC 2616 allows for the cache to return stale data while the existing
+    stale entry is refreshed from the origin server, and this is supported
+    by <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> when the
+    <code class="directive"><a href="#cachelock">CacheLock</a></code> directive is suitably
+    configured. Such responses will contain a
+    <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.46">Warning</a>
+    HTTP header with a 110 response code. RFC 2616 also allows a cache to return
+    stale data when the attempt made to refresh the stale data returns an
+    error 500 or above, and this behaviour is supported by default by
+    <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code>. Such responses will contain a
+    <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.46">Warning</a>
+    HTTP header with a 111 response code.</p>
+
+    <p><code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> requires the services of one or more
+    storage management modules. One storage management module is included in
     the base Apache distribution:</p>
     <dl>
     <dt><code class="module"><a href="../mod/mod_disk_cache.html">mod_disk_cache</a></code></dt>
-    <dd>implements a disk based storage manager.</dd>
+    <dd>Implements a disk based storage manager. Headers and bodies are
+    stored separately on disk, in a directory structure derived from the
+    md5 hash of the cached URL. Multiple content negotiated responses can
+    be stored concurrently, however the caching of partial content is not
+    supported by this module. The <code class="program"><a href="../programs/htcacheclean.html">htcacheclean</a></code> tool is
+    provided to list cached URLs, remove cached URLs, or to maintain the size
+    of the disk cache within size and inode limits.</dd>
     </dl>
 
-    <p>Content is stored in and retrieved from the cache using URI based keys. Content with
-    access protection is not cached.</p>
     <p>Further details, discussion, and examples, are provided in the
     <a href="../caching.html">Caching Guide</a>.</p>
 </div>
   cache performance available.</p>
   
   <p>In this mode, the cache <strong>bolts onto</strong> the front of the server,
-  acting as if a free standing RFC2616 caching proxy had been placed in front of
+  acting as if a free standing RFC 2616 caching proxy had been placed in front of
   the server.</p>
   
   <p>While this mode offers the best performance, the administrator may find that
index 303774d7888801f6d05faaca8d83745183477552..4e018584b239bbf61ee21e1432910eaeed2cd666 100644 (file)
 <a href="../ja/mod/mod_disk_cache.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
 <a href="../ko/mod/mod_disk_cache.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
 </div>
-<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Content cache storage manager keyed to URIs</td></tr>
+<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Disk based storage module for the HTTP caching filter.</td></tr>
 <tr><th><a href="module-dict.html#Status">Status:</a></th><td>Extension</td></tr>
 <tr><th><a href="module-dict.html#ModuleIdentifier">Module Identifier:</a></th><td>disk_cache_module</td></tr>
 <tr><th><a href="module-dict.html#SourceFile">Source File:</a></th><td>mod_disk_cache.c</td></tr></table>
 <h3>Summary</h3>
 
     <p><code class="module"><a href="../mod/mod_disk_cache.html">mod_disk_cache</a></code> implements a disk based storage
-    manager. It is primarily of use in conjunction with
-    <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code>.</p>
+    manager for <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code>.</p>
 
-    <p>Content is stored in and retrieved from the cache using URI based
-    keys. Content with access protection is not cached.</p>
+    <p>The headers and bodies of cached responses are stored separately on
+    disk, in a directory structure derived from the md5 hash of the cached
+    URL.</p>
 
-    <p><code class="program"><a href="../programs/htcacheclean.html">htcacheclean</a></code> can be used to maintain the cache
-       size at a maximum level.</p>
+    <p>Multiple content negotiated responses can be stored concurrently,
+    however the caching of partial content is not yet supported by this
+    module.</p>
+
+    <p>Atomic cache updates to both header and body files are achieved
+    without the need for locking by storing the device and inode numbers of
+    the body file within the header file. This has the side effect that
+    cache entries manually moved into the cache will be ignored.</p>
+
+    <p>The <code class="program"><a href="../programs/htcacheclean.html">htcacheclean</a></code> tool is provided to list cached
+    URLs, remove cached URLs, or to maintain the size of the disk cache
+    within size and/or inode limits. The tool can be run on demand, or
+    can be daemonized to offer continuous monitoring of directory sizes.</p>
 
     <div class="note"><h3>Note:</h3>
       <p><code class="module"><a href="../mod/mod_disk_cache.html">mod_disk_cache</a></code> requires the services of
index 2f5bfc49a927f3e446031a1588b7a0dfc30fd74b..fdf094261c315136534526acfe99a11a52fa84c4 100644 (file)
 
       <dd>Embeds the <a href="http://www.lua.org/">Lua</a> language into httpd, 
       for configuration and small business logic functions.</dd>
+
+      <dt><code class="module"><a href="./mod/mod_proxy.html">mod_proxy</a></code></dt>
+
+      <dd>The <code class="directive"><a href="./mod/mod_proxy.html#proxypass">ProxyPass</a></code> directive
+      is now most optimally configured within a
+      <code class="directive"><a href="./mod/core.html#location">Location</a></code> or
+      <code class="directive"><a href="./mod/core.html#locationmatch">LocationMatch</a></code>
+      block, and offers a significant performance advantage over the traditional
+      two-parameter syntax when present in large numbers.</dd>
+
       <dt><code class="module"><a href="./mod/mod_proxy_fcgi.html">mod_proxy_fcgi</a></code></dt>
 
       <dd>FastCGI Protocol backend for <code class="module"><a href="./mod/mod_proxy.html">mod_proxy</a></code></dd>
index 507c990dd2eeb4897baa3594ffca447226b9c688..b4a9aa74b66cbfc99b5832f19191149cb73fd015 100644 (file)
 
       <dd>Embeds the <a href="http://www.lua.org/">Lua</a> language into httpd, 
       for configuration and small business logic functions.</dd>
+
+      <dt><module>mod_proxy</module></dt>
+
+      <dd>The <directive module="mod_proxy">ProxyPass</directive> directive
+      is now most optimally configured within a
+      <directive module="core">Location</directive> or
+      <directive module="core">LocationMatch</directive>
+      block, and offers a significant performance advantage over the traditional
+      two-parameter syntax when present in large numbers.</dd>
+
       <dt><module>mod_proxy_fcgi</module></dt>
 
       <dd>FastCGI Protocol backend for <module>mod_proxy</module></dd>