summaryrefslogtreecommitdiff
path: root/APACHE_1_3_42/htdocs/manual/handler.html.en
diff options
context:
space:
mode:
Diffstat (limited to 'APACHE_1_3_42/htdocs/manual/handler.html.en')
-rw-r--r--APACHE_1_3_42/htdocs/manual/handler.html.en165
1 files changed, 165 insertions, 0 deletions
diff --git a/APACHE_1_3_42/htdocs/manual/handler.html.en b/APACHE_1_3_42/htdocs/manual/handler.html.en
new file mode 100644
index 0000000000..8662a6d7a4
--- /dev/null
+++ b/APACHE_1_3_42/htdocs/manual/handler.html.en
@@ -0,0 +1,165 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Apache's Handler Use</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <!--#include virtual="header.html" -->
+
+ <h1 align="CENTER">Apache's Handler Use</h1>
+
+ <ul>
+ <li><a href="#definition">What is a Handler</a></li>
+
+ <li><a href="#examples">Examples</a></li>
+
+ <li><a href="#programmer">Programmer's Note</a></li>
+ </ul>
+ <hr />
+
+ <h2><a id="definition" name="definition">What is a
+ Handler</a></h2>
+
+ <table border="1">
+ <tr>
+ <td valign="top"><strong>Related Modules</strong><br />
+ <br />
+ <a href="mod/mod_actions.html">mod_actions</a><br />
+ <a href="mod/mod_asis.html">mod_asis</a><br />
+ <a href="mod/mod_cgi.html">mod_cgi</a><br />
+ <a href="mod/mod_imap.html">mod_imap</a><br />
+ <a href="mod/mod_info.html">mod_info</a><br />
+ <a href="mod/mod_include.html">mod_include</a><br />
+ <a href="mod/mod_mime.html">mod_mime</a><br />
+ <a
+ href="mod/mod_negotiation.html">mod_negotiation</a><br />
+ <a href="mod/mod_status.html">mod_status</a><br />
+ </td>
+
+ <td valign="top"><strong>Related Directives</strong><br />
+ <br />
+ <a href="mod/mod_actions.html#action">Action</a><br />
+ <a
+ href="mod/mod_mime.html#addhandler">AddHandler</a><br />
+ <a
+ href="mod/mod_mime.html#removehandler">RemoveHandler</a><br />
+ <a
+ href="mod/mod_mime.html#sethandler">SetHandler</a><br />
+ </td>
+ </tr>
+ </table>
+
+ <p>A "handler" is an internal Apache representation of the
+ action to be performed when a file is called. Generally, files
+ have implicit handlers, based on the file type. Normally, all
+ files are simply served by the server, but certain file types
+ are "handled" separately.</p>
+
+ <p>Apache 1.1 adds the ability to use handlers explicitly.
+ Based on either filename extensions or on location, handlers
+ can be specified without relation to file type. This is
+ advantageous both because it is a more elegant solution, and
+ because it also allows for both a type <strong>and</strong> a
+ handler to be associated with a file. (See also <a
+ href="mod/mod_mime.html#multipleext">Files with Multiple
+ Extensions</a>.)</p>
+
+ <p>Handlers can either be built into the server or included in
+ a module, or they can be added with the <a
+ href="mod/mod_actions.html#action">Action</a> directive. The
+ built-in handlers in the standard distribution are as
+ follows:</p>
+
+ <ul>
+ <li><strong>default-handler</strong>: Send the file using the
+ <code>default_handler()</code>, which is the handler used by
+ default to handle static content. (core)</li>
+
+ <li><strong>send-as-is</strong>: Send file with HTTP headers
+ as is. (<a href="mod/mod_asis.html">mod_asis</a>)</li>
+
+ <li><strong>cgi-script</strong>: Treat the file as a CGI
+ script. (<a href="mod/mod_cgi.html">mod_cgi</a>)</li>
+
+ <li><strong>imap-file</strong>: Parse as an imagemap rule
+ file. (<a href="mod/mod_imap.html">mod_imap</a>)</li>
+
+ <li><strong>server-info</strong>: Get the server's
+ configuration information. (<a
+ href="mod/mod_info.html">mod_info</a>)</li>
+
+ <li><strong>server-parsed</strong>: Parse for server-side
+ includes. (<a
+ href="mod/mod_include.html">mod_include</a>)</li>
+
+ <li><strong>server-status</strong>: Get the server's status
+ report. (<a href="mod/mod_status.html">mod_status</a>)</li>
+
+ <li><strong>type-map</strong>: Parse as a type map file for
+ content negotiation. (<a
+ href="mod/mod_negotiation.html">mod_negotiation</a>)</li>
+ </ul>
+ <hr />
+
+ <h2><a id="examples" name="examples">Examples</a></h2>
+
+ <h3>Modifying static content using a CGI script</h3>
+
+ <p>The following directives will cause requests for files with
+ the <code>html</code> extension to trigger the launch of the
+ <code>footer.pl</code> CGI script.</p>
+<pre>
+ Action add-footer /cgi-bin/footer.pl
+ AddHandler add-footer .html
+</pre>
+
+ <p>Then the CGI script is responsible for sending the
+ originally requested document (pointed to by the
+ <code>PATH_TRANSLATED</code> environment variable) and making
+ whatever modifications or additions are desired.</p>
+
+ <h3>Files with HTTP headers</h3>
+
+ <p>The following directives will enable the
+ <code>send-as-is</code> handler, which is used for files which
+ contain their own HTTP headers. All files in the
+ <code>/web/htdocs/asis/</code> directory will be processed by
+ the <code>send-as-is</code> handler, regardless of their
+ filename extensions.</p>
+<pre>
+ &lt;Directory /web/htdocs/asis&gt;
+ SetHandler send-as-is
+ &lt;/Directory&gt;
+</pre>
+ <hr />
+
+ <h2><a id="programmer" name="programmer">Programmer's
+ Note</a></h2>
+
+ <p>In order to implement the handler features, an addition has
+ been made to the <a href="misc/API.html">Apache API</a> that
+ you may wish to make use of. Specifically, a new record has
+ been added to the <code>request_rec</code> structure:</p>
+<pre>
+ char *handler
+</pre>
+
+ <p>If you wish to have your module engage a handler, you need
+ only to set <code>r-&gt;handler</code> to the name of the
+ handler at any time prior to the <code>invoke_handler</code>
+ stage of the request. Handlers are implemented as they were
+ before, albeit using the handler name instead of a content
+ type. While it is not necessary, the naming convention for
+ handlers is to use a dash-separated word, with no slashes, so
+ as to not invade the media type name-space.</p>
+ <!--#include virtual="footer.html" -->
+ </body>
+</html>
+