读书人

nginx模块开发入门(9) -4 Filters

发布时间: 2013-10-10 14:14:51 作者: rapoo

nginx模块开发入门(九) -4 Filters
4. Filters

注:本节事例http/modules/ngx_http_chunked_filter_module.c

Filter操作handler生成的响应。头部filter操作HTTP头,body filter操作响应的内容。

4.1. 剖析Header Filter
Anatomy of a Header Filter



Header Filter由三个步骤组成:

1. 决定何时操作响应
2. 操作响应
3. 调用下一个filter

举个例子,比如有一个简化版本的"not modified" header filter:如果客户请求头中的If- Modified-Since和响应头中的Last-Modified相符,它把响应状态设置成304。注意这个头部filter只读入一个参数:ngx_http_request_t结构体,而我们可以通过它操作到客户请求header和一会将被发送的响应response header。

return ngx_http_next_body_filter();


因此,如果filter顺利链执行到了链尾(那个特别定义的的”write“filter),将返回一个"OK"响应,但如果执行过程中遇到了错误,链将被砍断,同时Nginx将给出一个错误的信息。这是一个单向的,错误快速返回的,只使用函数引用实现的链表。帅啊!

读书人网 >互联网

热点推荐