API 接口给予您扩展代理服务器基本功能的能力。通过写插件(您创建的应用程序扩展),您可做如下的定制处理:
基本服务器请求过程可以根据服务器在该阶段执行处理的类型分成几个步骤。每一步都包括一个您程序的指定部分可在其执行的关键部分。通过在配置文件中添加 API 伪指令,您可以指出在特定步骤中希望服务器调用的应用程序函数。通过在一个请求进程的步骤中包括多个 API 伪指令,您可以在该步骤调用几个应用程序函数。
您编译好的插件程序是 .DLL、.so 或 .o 文件,这取决于您的操作系统。服务器按照它的请求进程步骤进行处理,它调用与每一步关联的插件应用程序函数, 直到有一个函数表明它已处理该请求。如果从特定步骤中调用一个以上插件函数,这些函数按在配置文件中的顺序调用。
如果应用程序功能未完成请求(未指定应用程序功能或此步骤的应用程序功能返回代码 HTTP_NOACTION),则服务器执行此步骤的缺省操作。注:除服务步骤外,所有的步骤都是这样;服务步骤没有缺省操作。
对于请求进程中的每个步骤,存在配置伪指令以允许您指定在步骤期间调用和执行的定制应用程序功能。
如果您具有从一个处理步骤中调用的多个插件函数,则这些伪指令的相对顺序有时是重要的。在一个步骤中,该步骤的函数将按它们所列出的顺序执行。
NameTrans 和 Service 伪指令象 Exec 伪指令一样使用,并且相对的于其它包含在配置文件中的映象伪指令,它的发生和位置是独立的。这意味着服务器依照 Service、NameTrans、Map、Pass、Exec、Redirect 和 Fail 伪指令这样的顺序处理配置文件中的伪指令。当它成功地映射 URL 至文件中时,它不需要读取或处理此请求的任何后继伪指令。
注:使用“HTML_TITLE_MPFRULE”表单可配置与 Map、Pass、Exec、Redirect 以及 Fail 伪指令在一起的 NameTrans 和 Service 伪指令。修改它之前,此表单显示出现为这些伪指令相应顺序的缺省设置。
ServerInit | /path/file:function_name | ||
PreExit | /path/file:function_name | ||
Authentication | type | /path/file:function_name | |
NameTrans | /URL | /path/file:function_name | |
Authorization | /URL | /path/file:function_name | |
ObjectType | /URL | /path/file:function_name | |
PostAuth | /path/file:function_name | ||
Service | /URL | /path/file:function_name | |
Transmogrifier | /path/file:open_function_name:write_function_name:close_function_name:error_function_name | ||
Log | /URL | /path/file:function_name | |
Error | /URL | /path/file:function_name | |
PostExit | /path/file:function_name | ||
ServerTerm | /path/file:function_name | ||
Midnight | /path/file:function_name | ||
PICSDBLookup | /path/file:function_name | ||
GC Advisor | /path/file:function_name | ||
Proxy Advisor | /path/file:function_name |
注:如果您希望发生路径转换,URL 模板必需带有 Service 伪指令。