电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

Apache中过滤器实现机制分析

Apache中过滤器实现机制分析_第1页
1/9
Apache中过滤器实现机制分析_第2页
2/9
Apache中过滤器实现机制分析_第3页
3/9
Apache 中过滤器实现机制的分析 内容提要 Apache 中的过滤器形成了链表结构,当响应请求输出的时候,请求将依次流经整个过滤器链,直到到达最后一个过滤器,直接将其发送到网络中去。 在过滤器的最顶端,代码生成客户端请求的内容,通常称之为“内容生成器”,内容生成器产生的内容使用Apache 的标准输入机制ap_rputs(), ap_rprintf()或者ap_rwrite()输入过滤器顶端。每一个过滤器都被定义为一个回调,该回调从前一个过滤器接受输出(如果是第一个过滤器的话,没有前一个过滤器,那么此时从内容生成器中接受输入),对其进行操作,同时将处理结果传递给下链表中的下一个过滤器。传递可以使用ap_fc_*函数,比如ap_fc_puts(), ap_fc_printf()以及ap_fc_write()等等。 当内容生成器生成内容之后,Apache 系统将传递一个“结束流”标记给过滤器链表,过滤器将使用这个“结束流”来刷新所有的内部状态以及决定那些不完整的语法。 过滤器函数 过滤器函数通常用于执行回调,它将传递一个指针给对应的过滤器以及一个存储段,其中包含需要过滤得内容。在过滤器的ctx 中,回调将查找它的上下文,上下文就是通过ctx 提供。过滤器可能安装很多次,每次都接受自己的安装上下文指针。回调总是与过滤器关联在一起的,通常通过指定的名字描述。在ap_register_input_filter() 和ap_register_output_filter() 中会将指定的关联函数与指定的过滤器关联在一起。 如果传递给注册函数的初始化参数不为NULL, 在 Apache1.3 版本,当Apache 为特定请求生成内容,返回客户之前, frec 是 Apache 过滤器结点,其是ap_filter_rec_t 结构,该结构用来定义一个Apache 过滤器,其定义如下: struct ap_filter_rec_t { const char *name; ap_filter_func filter_func; ap_init_filter_func filter_init_func; ap_filter_type ftype; struct ap_filter_rec_t *next; }; 该结构定义了作为一个过滤器必须具备的各个特性。name 是过滤器的名称;filter_func 是过滤器对应的函数,当过滤器被激活的时候,其将调用该函数对请求进行过滤处理。filter_init_func 用于在过滤处理句柄被激活之前调用。需要注意的是,该过滤器仅能用于HTTP 协议。其余协议的初始化由协议本身实现。 yype 则是过滤器的类型。next 则是指向下一个过滤器结构。 ctx 通常用来保存过滤器frec 可能需要的额外的信息,由于需要的信息的千差万别,因此只能将其...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

Apache中过滤器实现机制分析

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部