<!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>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_mime.html#addinputfilter">AddInputFilter</a><br />
         <a
        href="mod/mod_mime.html#addoutputfilter">AddOutputFilter</a><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.</p>

    <p>Filters are used internally by Apache to perform functions
    such as chunking and byte-range request handling. In addition,
    modules can provide filters which are selectable using run-time
    configuration directives. 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 configurable filter currently included with the
    Apache distribution is the <code>INCLUDES</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>

