summaryrefslogtreecommitdiffstats
path: root/docs/manual/mod
diff options
context:
space:
mode:
authorGraham Leggett <minfrin@apache.org>2010-11-01 10:52:12 +0100
committerGraham Leggett <minfrin@apache.org>2010-11-01 10:52:12 +0100
commit7564cc32a1f901320ee0640a0a750e9b98eca299 (patch)
tree275aa0024b275d2105830d8c0f2e22c339433d15 /docs/manual/mod
parentAdd documentation for mod_cache and mod_disk_cache. (diff)
downloadapache2-7564cc32a1f901320ee0640a0a750e9b98eca299.tar.xz
apache2-7564cc32a1f901320ee0640a0a750e9b98eca299.zip
Update transformations.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1029588 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'docs/manual/mod')
-rw-r--r--docs/manual/mod/index.html.en4
-rw-r--r--docs/manual/mod/mod_cache.html.en81
-rw-r--r--docs/manual/mod/mod_disk_cache.html.en25
3 files changed, 92 insertions, 18 deletions
diff --git a/docs/manual/mod/index.html.en b/docs/manual/mod/index.html.en
index c20ae357c1..9be910bbfe 100644
--- a/docs/manual/mod/index.html.en
+++ b/docs/manual/mod/index.html.en
@@ -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>
diff --git a/docs/manual/mod/mod_cache.html.en b/docs/manual/mod/mod_cache.html.en
index fe65c9ab2e..aa3e066047 100644
--- a/docs/manual/mod/mod_cache.html.en
+++ b/docs/manual/mod/mod_cache.html.en
@@ -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>
@@ -39,18 +39,81 @@
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>
@@ -192,7 +255,7 @@
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
diff --git a/docs/manual/mod/mod_disk_cache.html.en b/docs/manual/mod/mod_disk_cache.html.en
index 303774d788..4e018584b2 100644
--- a/docs/manual/mod/mod_disk_cache.html.en
+++ b/docs/manual/mod/mod_disk_cache.html.en
@@ -26,21 +26,32 @@
<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