web服务器软件apache模块初步研究总结

web服务器软件apache模块初步研究总结

ID:30309857

大小:115.04 KB

页数:11页

时间:2018-12-28

web服务器软件apache模块初步研究总结_第1页
web服务器软件apache模块初步研究总结_第2页
web服务器软件apache模块初步研究总结_第3页
web服务器软件apache模块初步研究总结_第4页
web服务器软件apache模块初步研究总结_第5页
资源描述:

《web服务器软件apache模块初步研究总结》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、Apache模块的初步研究总结作者:徐绿兵日期:2003/2/11Apache作为Web服务器,除了可以写CGI程序完成各种Web应用外,Apache也提供了一套API来扩充服务器的功能。Apache本身就是一个由多个模块(module)拼装而成的程序,它的API就是用来写Apache定义的模块的。通过对Apache模块API的研究,总结如下:一、Apache模块API的特点l都是C的API:Apache模块API是用标准C语言提供的。l模块由一系列回调函数组成:所谓的模块,就是实现一系列模块所需要

2、的回调函数和提供符合预定义数据结构的值。回调函数包括模块初始化(init)、配置信息处理(create_config、merge_config)、文件名转换处理(URI->filename)、内容处理程序(contenthandler)、专有日志输出(logger)等,回调函数可以根据需要全部或部分实现。内容处理程序可以输出相应结果。l一个模块可以包含一或多个内容处理程序回调函数:若干个内容处理程序回调函数可以通过一个数据结构(handler_rec)指明。如何激活相应的函数可以通过Apache的配

3、置文件(conf/httpd.conf)指明。内容处理程序可以在访问某个路径时或访问具有某种扩展名的文件时被激活。l支持多种生命期的内存池(memorypool):合理的使用可以防止内存泄露,使用内存池申请的动态空间可以在内容处理程序调用后或Apache正常退出时自动释放。二、优点Apache模块是和Apache绑定的,是Apache的一部分,无需每次HTTP请求时都需要加载。三、缺点lAPI可能会更新,由此会造成模块做相应的修改。l每次改动模块要重新编译连接Apache(可以通过动态连接方式编译,

4、还没做相应的试验)。l对模块的健壮性要求高,因为模块是服务器的一部分。l多了一套规范,推广难度比CGI大。四、参考文档http://httpd.apache.org/docs/misc/API.html五、未来研究设想目前的研究还是很初步的。如果可能,未来还可以对以下领域做进一步的研究:1.通过Apache配置文件配置模块的一些参数,如数据库参数;配置命令各种参数传递方式的使用;配置命令放在VirtaulHost内和VirtualHost外的区别和影响。2.模块各阶段回调函数的深入研究,充分利用各种

5、回调函数3.子请求(subrequest)的研究4.Apache源代码提供的各种操作函数六、如何书写Apache模块(本部分代码都可以在模块例子中找到)1.定义Apache配置文件命令staticconstcommand_recdump_cmds[]={{"Dump",/*directivename*/cmd_dump,/*configactionroutine*/NULL,/*argumenttoincludeincall*/OR_OPTIONS,/*whereavailable*/RAW_ARG

6、S,/*arguments*/"Dumpdirective-anyarguments"/*directivedescription*/},{NULL}};这个结构指明了可以在Apache配置文件(conf/httpd.conf)可使用的配置命令(本例中为“Dump”)、处理该命令的函数名称(本例中为cmd_dump)、传递参数的方式(本例中为RAW_ARGS)。配置命令处理函数的写法参加模块例子。一个模块中可以处理若干个配置命令,结构数组最后一个值为NULL。2.定义内容处理函数staticcons

7、thandler_recdump_handlers[]={{"dump-handler",dump_handler},{NULL}};这个结构指明了内容处理函数的名称(用于Apache配置文件,本例中为"dump-handler")和内容处理函数的名称(本例中为dump_handler)。一个模块中可以有若干个内容处理函数,结构数组的最后一个值为NULL。3.定义模块结构moduleMODULE_VAR_EXPORTdump_module={STANDARD_MODULE_STUFF,dump_in

8、it,/*moduleinitializer*/dump_create_dir_config,/*per-directoryconfigcreator*/dump_merge_dir_config,/*dirconfigmerger*/dump_create_server_config,/*serverconfigcreator*/dump_merge_server_config,/*serverconfigmerger*/dump_cmds,/*commandtab

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。