⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 handler.html

📁 这个是我在web培训时老师提供的手册
💻 HTML
字号:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<meta name="keywords" content="Apache, 中文, 手册, 中文版, 中文手册, 中文版手册, 参考手册, 中文参考手册, 金步国" />
<meta name="description" content="Apache 2.2 中文版参考手册" />
<meta name="author" content="金步国" />
<link href="./style/css/manual-zip.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
<link href="./style/css/manual-zip-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
<link href="./style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
<title>Apache处理器的使用 - Apache 2.2 中文版参考手册</title>
</head>
<body id="manual-page">
<div id="page-header"><p class="menu"><a href="./mod/index.html">模块索引</a> | <a href="./mod/directives.html">指令索引</a> | <a href="./faq/index.html">常见问题</a> | <a href="./glossary.html">词汇表</a> | <a href="./sitemap.html">站点导航</a></p><p class="apache">Apache HTTP Server 版本2.2</p><img alt="" src="./images/feather.gif" /></div>
<div class="up"><a href="./index.html"><img title="&lt;-" alt="&lt;-" src="./images/left.gif" /></a></div>
<div id="path"><a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP Server</a> &gt; <a href="http://httpd.apache.org/docs/">文档</a> &gt; <a href="./index.html">版本2.2</a></div>

<div id="translation-info">   <a href="./translator_announcement.html#thanks">致谢</a> | <a href="./translator_announcement.html#announcement">译者声明</a> | 本篇译者:<a href="mailto:&#099;sfr&#0097;nk&#0064;&#099;itiz&#046;n&#0101;t">金步国</a> | 本篇译稿最后更新:2006年1月4日 | <a href="./translator_announcement.html#last_new">获取最新版本</a></div>
<div id="page-content"><div id="preamble"><h1>Apache处理器的使用</h1>


    <p>本文阐述Apache处理器的使用。</p>
  </div>
	<div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="definition" id="definition">什么是处理器(Handler)</a></h2>
    
    <table border="1" cellpadding="0" cellspacing="0" bordercolor="#AAAAAA" class="related">
<tr><th>相关模块</th><th>相关指令</th></tr>
<tr><td><ul><li><code class="module"><a href="./mod/mod_actions.html">mod_actions</a></code></li><li><code class="module"><a href="./mod/mod_asis.html">mod_asis</a></code></li><li><code class="module"><a href="./mod/mod_cgi.html">mod_cgi</a></code></li><li><code class="module"><a href="./mod/mod_imagemap.html">mod_imagemap</a></code></li><li><code class="module"><a href="./mod/mod_info.html">mod_info</a></code></li><li><code class="module"><a href="./mod/mod_mime.html">mod_mime</a></code></li><li><code class="module"><a href="./mod/mod_negotiation.html">mod_negotiation</a></code></li><li><code class="module"><a href="./mod/mod_status.html">mod_status</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_actions.html#action">Action</a></code></li><li><code class="directive"><a href="./mod/mod_mime.html#addhandler">AddHandler</a></code></li><li><code class="directive"><a href="./mod/mod_mime.html#removehandler">RemoveHandler</a></code></li><li><code class="directive"><a href="./mod/core.html#sethandler">SetHandler</a></code></li></ul></td></tr>
</table>


    <p>"处理器"是当一个文件被调用时,Apache所执行操作的内部表现。文件一般都有基于其文件类型的隐含处理器。通常,文件都只是被服务器简单的提交,只有某些文件类型会被特别地"处理"。</p>

    <p>Apache1.1增加了使用处理器的能力。处理器可以基于文件名后缀或位置进行指定,而不只是文件类型,其优越性不仅在于它是一个优秀的方案,还在于它允许一个文件同时与一种类型<strong>和</strong>一个处理器相关联。(参见:<a href="mod/mod_mime.html#multipleext">带多扩展名的文件</a>)</p>

    <p>处理器可以被编译进服务器也可以包含在模块中,还可以用<code class="directive"><a href="./mod/mod_actions.html#action">Action</a></code>指令增加。标准发行版中内建的处理器如下:</p>

    <ul>
      <li><strong>default-handler</strong>:使用<code>default_handler()</code>发送文件,这是处理静态内容的默认处理器。(<code class="module"><a href="./mod/core.html">core</a></code>)</li>

      <li><strong>send-as-is</strong>:按原样带HTTP头发送文件。(<code class="module"><a href="./mod/mod_asis.html">mod_asis</a></code>)</li>

      <li><strong>cgi-script</strong>:将文件视为CGI脚本。(<code class="module"><a href="./mod/mod_cgi.html">mod_cgi</a></code>)</li>

      <li><strong>imap-file</strong>:将文件作为映射表规则文件解析。(<code class="module"><a href="./mod/mod_imagemap.html">mod_imagemap</a></code>)</li>

      <li><strong>server-info</strong>:获取服务器的配置信息。(<code class="module"><a href="./mod/mod_info.html">mod_info</a></code>)</li>

      <li><strong>server-status</strong>:获取服务器状态的报告。(<code class="module"><a href="./mod/mod_status.html">mod_status</a></code>)</li>

      <li><strong>type-map</strong>:将文件作为类型表文件解析以实现内容协商。(<code class="module"><a href="./mod/mod_negotiation.html">mod_negotiation</a></code>)</li>
    </ul>
  </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="examples" id="examples">例子</a></h2>
    

    <h3><a name="example1" id="example1">用CGI脚本修改静态的内容</a></h3>
      

      <p>以下指令,将使对带有<code>html</code>后缀的文件的请求,调用CGI脚本<code>footer.pl</code></p>

      <div class="example"><p><code>
        Action add-footer /cgi-bin/footer.pl<br />
        AddHandler add-footer .html
      </code></p></div>

      <p>然后,由CGI脚本负责发送(由环境变量<code>PATH_TRANSLATED</code>指向的)原始请求文档,并按需要进行修改或增加。</p>

    
    <h3><a name="example2" id="example2">带HTTP头的文件</a></h3>
      

      <p>以下指令启用<code>send-as-is</code>处理器,它用于处理本身包含HTTP头的文件,这样,所有位于<code>/web/htdocs/asis/</code>目录中的文件,无论其后缀名是什么,都由<code>send-as-is</code>进行处理。</p>

      <div class="example"><p><code>
        &lt;Directory /web/htdocs/asis&gt;<br />
        SetHandler send-as-is<br />
        &lt;/Directory&gt;
      </code></p></div>

    
  </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="programmer" id="programmer">程序员注意事项</a></h2>
    

    <p>为了实现处理器功能,<a href="developer/API.html">Apache API</a>里面增加了一些内容,你可能会用到。尤其是<a href="developer/API.html">Apache API</a>结构中增加了一个字段:</p>

    <div class="example"><p><code>
      char *handler
    </code></p></div>

    <p>如果你的模块需要使用处理器,只须在对请求执行<code>invoke_handler</code>之前,设置<code>r-&gt;handler</code>为该处理器的名称即可。处理器的实现和以前一样,只是使用了处理器名称而不是内容类型。处理器的名称可以有"-",但不能有"/",以避免和介质类型名称冲突。</p>
  </div></div>
<div id="footer">
<p class="apache">本文允许自由使用、分发、转载,但必须保留译者署名;详见:<a href="./translator_announcement.html#announcement">译者声明</a>。</p>
<p class="menu"><a href="./mod/index.html">模块索引</a> | <a href="./mod/directives.html">指令索引</a> | <a href="./faq/index.html">常见问题</a> | <a href="./glossary.html">词汇表</a> | <a href="./sitemap.html">站点导航</a></p></div>
</body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -