I just did a tiny bit of work adding some filter docs. Perhaps someone who has actually tried some of this stuff can look it over.
In particular, a few things I don't know: 1. What is the "SetFilter" directive in mod_mime? 2. Are there any other filters provided by Apache besides INCLUDE? 3. Is there any developer documenatation to point to? 4. Is there anyting else people need to know about filters? ---------- Forwarded message ---------- Date: 10 Feb 2001 04:04:12 -0000 From: [EMAIL PROTECTED] Reply-To: new-httpd@apache.org To: [EMAIL PROTECTED] Subject: cvs commit: httpd-2.0/docs/manual/mod core.html directives.html mod_ext_filter.html slive 01/02/09 20:04:12 Modified: docs/manual index.html docs/manual/mod core.html directives.html mod_ext_filter.html Added: docs/manual filter.html Log: Add some VERY basic filter documentation. See followup discussion on apache-docs. Revision Changes Path 1.19 +2 -0 httpd-2.0/docs/manual/index.html Index: index.html =================================================================== RCS file: /home/cvs/httpd-2.0/docs/manual/index.html,v retrieving revision 1.18 retrieving revision 1.19 diff -u -d -b -u -r1.18 -r1.19 --- index.html 2001/01/23 23:24:06 1.18 +++ index.html 2001/02/10 04:04:11 1.19 @@ -133,6 +133,8 @@ </td></tr><tr><td> <A HREF="handler.html">Handlers</A> </td></tr><tr><td> +<A HREF="filter.html">Filters</A> +</td></tr><tr><td> <A HREF="content-negotiation.html">Content negotiation</A> </td></tr><tr><td> <A HREF="env.html">Environment Variables</A> 1.1 httpd-2.0/docs/manual/filter.html Index: filter.html =================================================================== <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <HTML> <HEAD> <TITLE>Filters - Apache HTTPD</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">Filters</H1> <table border="1"> <tr><td valign="top"> <strong>Related Modules</strong><br><br> <a href="mod/mod_ext_filter.html">mod_ext_filter</a><br> <A HREF="mod/mod_include.html">mod_include</A><br> </td> <td valign="top"> <strong>Related Directives</strong><br><br> <a href="mod/mod_ext_filter.html#extfilterdefine">ExtFilterDefine</a></br> <a href="mod/mod_ext_filter.html#extfilteroptions">ExtFilterOptions</a><br> <a href="mod/core.html#setinputfilter">SetInputFilter</a><br> <a href="mod/core.html#setoutputfilter">SetOutputFilter</a><br> </td> </tr></table> <p>A <em>filter</em> is a process which is applied to data that is sent or received by the server. Data sent by clients to the server is processed by <em>input filters</em> while data sent by the server to the client is processed by <em>output filters</em>. Multiple filters can be applied to the data, and the order of the filters can be explicitly specified. In addition, since filters apply to all content, they allow for flexible manipulation of data such as processing the output of CGI scripts for Server Side Includes.</p> <p>The set of filters which apply to data can be manipulated with the <code>SetInputFilter</code> and <code>SetOutputFilter</code> directives.</p> <p>The only filter currently included with the Apache distribution is the <code>INCLUDE</code> filter which is provided by <a href="mod/mod_include.html">mod_include</a> to process output for Server Side Includes. There is also an experimental module called <a href="mod/mod_ext_filter.html">mod_ext_filter</a> which allows for external programs to be defined as filters.</p> <!--#include virtual="footer.html" --> </BODY> </HTML> 1.186 +69 -0 httpd-2.0/docs/manual/mod/core.html Index: core.html =================================================================== RCS file: /home/cvs/httpd-2.0/docs/manual/mod/core.html,v retrieving revision 1.185 retrieving revision 1.186 diff -u -d -b -u -r1.185 -r1.186 --- core.html 2001/01/28 00:19:28 1.185 +++ core.html 2001/02/10 04:04:12 1.186 @@ -73,6 +73,8 @@ <LI><A HREF="#serversignature">ServerSignature</A> <LI><A HREF="#servertokens">ServerTokens</A> <LI><A HREF="#servertype">ServerType</A> +<LI><A HREF="#setinputfilter">SetInputFilter</A> +<LI><A HREF="#setoutputfilter">SetOutputFilter</A> <LI><A HREF="#timeout">TimeOut</A> <LI><A HREF="#usecanonicalname">UseCanonicalName</A> <LI><A HREF="#virtualhost"><VirtualHost></A> @@ -2479,6 +2481,73 @@ standalone will probably be your only option.<P> <HR> +<H2><A NAME="setinputfilter">SetInputFilter directive</A></H2> +<P><A + HREF="directive-dict.html#Syntax" + REL="Help" +><STRONG>Syntax:</STRONG></A> SetInputFilter <EM>filter</EM> +[<EM>filter</EM>] ...<BR> +<A + HREF="directive-dict.html#Default" + REL="Help" +><STRONG>Default:</STRONG></A> none<BR> +<A + HREF="directive-dict.html#Context" + REL="Help" +><STRONG>Context:</STRONG></A> directory<BR> +<A + HREF="directive-dict.html#Status" + REL="Help" +><STRONG>Status:</STRONG></A> core</P> + +<p>The <code>SetInputFilter</code> directive sets the filters +which will process client requests when they are received by the +server.</p> + +<p>The order of the arguments determines the order in which the +filters will process the content.</p> + +<p>See also the <a href="../filter.html">Filters</a> documentation.</p> + + +<P><HR> +<H2><A NAME="setoutputfilter">SetOutputFilter directive</A></H2> +<P><A + HREF="directive-dict.html#Syntax" + REL="Help" +><STRONG>Syntax:</STRONG></A> SetOutputFilter <EM>filter</EM> +[<EM>filter</EM>] ...<BR> +<A + HREF="directive-dict.html#Default" + REL="Help" +><STRONG>Default:</STRONG></A> none<BR> +<A + HREF="directive-dict.html#Context" + REL="Help" +><STRONG>Context:</STRONG></A> directory<BR> +<A + HREF="directive-dict.html#Status" + REL="Help" +><STRONG>Status:</STRONG></A> core</P> + +<P>The <code>SetOutputFilter</code> directive sets the filters which +will process responses from the server before they are sent to the +client. For example, the following configuration will process +all files in the <code>/www/data/</code> directory for +server-side includes.</P> + +<BLOCKQUOTE><CODE> +<Directory /www/data/><BR> + SetOutputFilter INCLUDES<BR> +</Directory> +</CODE></BLOCKQUOTE> + +<p>The order of the arguments determines the order in which the +filters will process the content.</p> + +<p>See also the <a href="../filter.html">Filters</a> documentation.</p> + +<P><HR> <H2><A NAME="timeout">TimeOut directive</A></H2> <!--%plaintext <?INDEX {\tt TimeOut} directive> --> <A 1.76 +2 -0 httpd-2.0/docs/manual/mod/directives.html Index: directives.html =================================================================== RCS file: /home/cvs/httpd-2.0/docs/manual/mod/directives.html,v retrieving revision 1.75 retrieving revision 1.76 diff -u -d -b -u -r1.75 -r1.76 --- directives.html 2000/12/11 00:45:41 1.75 +++ directives.html 2001/02/10 04:04:12 1.76 @@ -222,6 +222,8 @@ <LI><A HREF="mod_setenvif.html#setenvif">SetEnvIf</A> <LI><A HREF="mod_setenvif.html#SetEnvIfNoCase">SetEnvIfNoCase</A> <LI><A HREF="mod_mime.html#sethandler">SetHandler</A> +<LI><A HREF="core.html#setinputfilter">SetInputFilter</A> +<LI><A HREF="core.html#setoutputfilter">SetOutputFilter</A> <LI><A HREF="mpm_common.html#startservers">StartServers</A> <LI><A HREF="mpm_common.html#startthreads">StartThreads</A> <LI><A HREF="mpm_common.html#threadsperchild">ThreadsPerChild</A> 1.4 +4 -4 httpd-2.0/docs/manual/mod/mod_ext_filter.html Index: mod_ext_filter.html =================================================================== RCS file: /home/cvs/httpd-2.0/docs/manual/mod/mod_ext_filter.html,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -b -u -r1.3 -r1.4 --- mod_ext_filter.html 2000/12/09 19:50:02 1.3 +++ mod_ext_filter.html 2001/02/10 04:04:12 1.4 @@ -86,7 +86,7 @@ <Directory "/export/home/trawick/apacheinst/htdocs/c"> # core directive to cause the new filter to be run on output - AddOutputFilter c-to-heml + SetOutputFilter c-to-heml # mod_mime directive to set the type of .c files to text/c AddType text/c .c @@ -108,7 +108,7 @@ <Location /gzipped> # core directive to cause the gzip filter to be run on output - AddOutputFilter gzip + SetOutputFilter gzip # mod_header directive to add "Content-Encoding: gzip" header field Header set Content-Encoding gzip @@ -127,7 +127,7 @@ # core directive to cause the slowdown filter to be run several times on # output - AddOutputFilter slowdown slowdown slowdown + SetOutputFilter slowdown slowdown slowdown </Location> </PRE> @@ -173,7 +173,7 @@ <P> <EM>filtername</EM> specifies the name of the filter being defined. This name - can then be used in AddOutputFilter directives. It must be unique among all + can then be used in SetOutputFilter directives. It must be unique among all registered filters. <EM>At the present time, no error is reported by the register-filter API, so a problem with duplicate names isn't reported to the user.</EM>