Blame docs/manual/handler.html.zh-cn.utf8

Packit 90a5c9
Packit 90a5c9
Packit 90a5c9
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh-cn" xml:lang="zh-cn"><head>
Packit 90a5c9
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
Packit 90a5c9
Packit 90a5c9
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Packit 90a5c9
              This file is generated from xml source: DO NOT EDIT
Packit 90a5c9
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Packit 90a5c9
      -->
Packit 90a5c9
<title>Apache 的处理器 - Apache HTTP 服务器 版本 2.4</title>
Packit 90a5c9
<link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
Packit 90a5c9
<link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
Packit 90a5c9
<link href="./style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="./style/css/prettify.css" />
Packit 90a5c9
<script src="./style/scripts/prettify.min.js" type="text/javascript">
Packit 90a5c9
</script>
Packit 90a5c9
Packit 90a5c9
<link href="./images/favicon.ico" rel="shortcut icon" /></head>
Packit 90a5c9
<body id="manual-page">
Packit 90a5c9

模块 | 指令 | 常见问题 | 术语 | 网站导航

Packit 90a5c9

Apache HTTP 服务器版本 2.4

Packit 90a5c9
Packit 90a5c9
<-
Packit 90a5c9
Packit 90a5c9
Apache > HTTP 服务器 > 文档 > 版本 2.4

Apache 的处理器

Packit 90a5c9
Packit 90a5c9

可用语言:  en  |

Packit 90a5c9
 es  |
Packit 90a5c9
 fr  |
Packit 90a5c9
 ja  |
Packit 90a5c9
 ko  |
Packit 90a5c9
 tr  |
Packit 90a5c9
 zh-cn 

Packit 90a5c9
Packit 90a5c9
此翻译可能过期。要了解最近的更改,请阅读英文版。
Packit 90a5c9
Packit 90a5c9
    

本页描述 Apache 处理器的用法。

Packit 90a5c9
  
Packit 90a5c9
Packit 90a5c9
  • 例子
  • Packit 90a5c9
  • 对程序员的说明
  • Packit 90a5c9

    参见

    Packit 90a5c9
    top
    Packit 90a5c9
    Packit 90a5c9

    什么是处理器

    Packit 90a5c9
        
    Packit 90a5c9
        
    Packit 90a5c9
    Packit 90a5c9
    Packit 90a5c9
        

    “处理器”是当文件被调用时,Apache 要执行的动作的内部表示形式。

    Packit 90a5c9
        一般来说,每个文件都有基于其文件类型的隐式处理器。通常的文件会被
    Packit 90a5c9
        服务器简单处理,但是某些文件类型会被分别“处理”。

    Packit 90a5c9
    Packit 90a5c9
        

    处理器也可以被基于扩展名或位置来明确配置。它们都很有用,这不仅

    Packit 90a5c9
        因为它是优雅的方案,而且还允许类型处理器关联到文件
    Packit 90a5c9
        (参见文件与多个扩展名)。

    Packit 90a5c9
    Packit 90a5c9
        

    处理器可以编译到服务器中,或者包含在模块中,它们还可以被 Action 指令增加。标准发行版中内置的处理器有:

    Packit 90a5c9
    Packit 90a5c9
        
      Packit 90a5c9
            
    • default-handler: 使用
    • Packit 90a5c9
            default_handler() 发送文件,它是用来处理静态内容的处理器(核心)。
      Packit 90a5c9
      Packit 90a5c9
            
    • send-as-is: 直接发送,不增加 HTTP 头(mod_asis)。
    • Packit 90a5c9
      Packit 90a5c9
            
    • cgi-script: 按 CGI 脚本处理(mod_cgi)。
    • Packit 90a5c9
      Packit 90a5c9
            
    • imap-file: 按 imagemap 规则处理(mod_imagemap)。
    • Packit 90a5c9
      Packit 90a5c9
            
    • server-info: 取得服务器配置信息(mod_info)。
    • Packit 90a5c9
      Packit 90a5c9
            
    • server-status: 取得服务器状态报告(mod_status)。
    • Packit 90a5c9
      Packit 90a5c9
            
    • type-map: 用于内容协商,按类型映射文件处理(mod_negotiation)。
    • Packit 90a5c9
          
      Packit 90a5c9
        
      top
      Packit 90a5c9
      Packit 90a5c9

      例子

      Packit 90a5c9
          
      Packit 90a5c9
      Packit 90a5c9
          

      使用 CGI 脚本修改静态内容

      Packit 90a5c9
            
      Packit 90a5c9
      Packit 90a5c9
            

      下面的指令将会使具有html扩展名的文件,触发 CGI 脚本footer.pl的执行。

      Packit 90a5c9
      Packit 90a5c9
            

      Packit 90a5c9
              Action add-footer /cgi-bin/footer.pl
      Packit 90a5c9
              AddHandler add-footer .html
      Packit 90a5c9
            

      Packit 90a5c9
      Packit 90a5c9
            

      于是 CGI 负责发送请求的文档(PATH_TRANSLATED 环境变量指向它),按照需要作出 and making

      Packit 90a5c9
            whatever modifications or additions are desired.

      Packit 90a5c9
      Packit 90a5c9
          
      Packit 90a5c9
          

      含有 HTTP 头的文件

      Packit 90a5c9
            
      Packit 90a5c9
      Packit 90a5c9
            

      下面的指令会启用

      Packit 90a5c9
            send-as-is 处理器,用于包含自己的 HTTP 的文件。不管什么扩展名,
      Packit 90a5c9
            所有位于 /web/htdocs/asis/ 目录的文件会被
      Packit 90a5c9
            send-as-is 处理器处理。

      Packit 90a5c9
      Packit 90a5c9
            

      Packit 90a5c9
              <Directory /web/htdocs/asis>
      Packit 90a5c9
              SetHandler send-as-is
      Packit 90a5c9
              </Directory>
      Packit 90a5c9
            

      Packit 90a5c9
      Packit 90a5c9
          
      Packit 90a5c9
        
      top
      Packit 90a5c9
      Packit 90a5c9

      对程序员的说明

      Packit 90a5c9
          
      Packit 90a5c9
      Packit 90a5c9
          

      为了实现处理器特性,增加了需要使用的 Apache API

      Packit 90a5c9
          特别的,结构 request_rec 增加了新成员:

      Packit 90a5c9
      Packit 90a5c9
          

      Packit 90a5c9
            char *handler
      Packit 90a5c9
          

      Packit 90a5c9
      Packit 90a5c9
          

      如果你想要模块实现处理器,只需要在在处理请求,调用 invoke_handler

      Packit 90a5c9
          之前,将 r->handler 指向处理器名称。处理器的实现与以前一样,只是用处理器名称取代了内容类型。
      Packit 90a5c9
          虽然不是必要,处理器的命名约定是使用破折号分割的单词,没有斜杠,从而不侵入媒体类型名称空间。

      Packit 90a5c9
        
      Packit 90a5c9
      Packit 90a5c9

      可用语言:  en  |

      Packit 90a5c9
       es  |
      Packit 90a5c9
       fr  |
      Packit 90a5c9
       ja  |
      Packit 90a5c9
       ko  |
      Packit 90a5c9
       tr  |
      Packit 90a5c9
       zh-cn 

      Packit 90a5c9
      top

      评论

      Notice:
      This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our mailing lists.
      Packit 90a5c9
      <script type="text/javascript">
      Packit 90a5c9
      var comments_shortname = 'httpd';
      Packit 90a5c9
      var comments_identifier = 'http://httpd.apache.org/docs/2.4/handler.html';
      Packit 90a5c9
      (function(w, d) {
      Packit 90a5c9
          if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
      Packit 90a5c9
              d.write('
      <\/div>');
      Packit 90a5c9
              var s = d.createElement('script');
      Packit 90a5c9
              s.type = 'text/javascript';
      Packit 90a5c9
              s.async = true;
      Packit 90a5c9
              s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
      Packit 90a5c9
              (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
      Packit 90a5c9
          }
      Packit 90a5c9
          else { 
      Packit 90a5c9
              d.write('
      Comments are disabled for this page at the moment.<\/div>');
      Packit 90a5c9
          }
      Packit 90a5c9
      })(window, document);
      Packit 90a5c9
      //--></script>
      Packit 90a5c9

      Copyright 2018 The Apache Software Foundation.
      基于 Apache License, Version 2.0 许可证.

      Packit 90a5c9

      模块 | 指令 | 常见问题 | 术语 | 网站导航

      <script type="text/javascript">
      Packit 90a5c9
      if (typeof(prettyPrint) !== 'undefined') {
      Packit 90a5c9
          prettyPrint();
      Packit 90a5c9
      }
      Packit 90a5c9
      //--></script>
      Packit 90a5c9
      </body></html>