diff options
author | Justin Erenkrantz <jerenkrantz@apache.org> | 2005-01-05 23:08:27 +0000 |
---|---|---|
committer | Justin Erenkrantz <jerenkrantz@apache.org> | 2005-01-05 23:08:27 +0000 |
commit | 4d88d4dbec7dbda9442564fa49b2772cfa5b73a2 (patch) | |
tree | 4a6f7e47cedf439990c586f4330d804b6e410731 /htdocs/manual/handler.html.en | |
parent | a9a465e5a27a606b642d144ab0c352b69360e773 (diff) | |
download | httpd-4d88d4dbec7dbda9442564fa49b2772cfa5b73a2.tar.gz |
The return of the htdocs for Apache 1.3 sans history.
Imported from tip of the httpd-docs-1.3 CVS repository. (just the htdocs dir)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@124296 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'htdocs/manual/handler.html.en')
-rw-r--r-- | htdocs/manual/handler.html.en | 165 |
1 files changed, 165 insertions, 0 deletions
diff --git a/htdocs/manual/handler.html.en b/htdocs/manual/handler.html.en new file mode 100644 index 0000000000..8662a6d7a4 --- /dev/null +++ b/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> + <Directory /web/htdocs/asis> + SetHandler send-as-is + </Directory> +</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->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> + |