开发工具

软件开发以及项目开发和网站开发工具,包括版本控制软件,测试工具,修复漏洞工具等等

4.2. 剖析Upstream(又称 Proxy) Handler

我已经帮你了解了如何让你的handler来产生响应。有些时候你可以用一小段C代码就可以得到响应,但是通常情况下你需要同另外一台server打交道(比如你正在写一个用来实现某种网络协议的模块)。

4.1. 剖析Handler(非代理)

Handler一般做4件事:获取location配置;生成合适的响应;发送响应头;发送响应体。Handler有一个参数,即请求结构体。请求结构体包含很多关于客户请求的有用信息,比如说请求方法,URI,请求头等等。我们一个个地来看。

4.1.4. 发送响应体

现在模块已经生成了一个响应,并存放在了内存中。接下来它需要将这个响应分配给一个特定的缓冲区,然后把这个缓冲区加入到链表,然后调用链表中“发送响应体”的函数。

4.1.3. 发送响应头

响应头存放在结构体headers_out中,它的引用存放在请求结构体中。 Handler设置相应的响应头的值,然后调用ngx_http_send_header(r)。headers_out中比较有用的是:

typedef stuct {
...
ngx_uint_t status;

4.1.2. 生成响应

这才是模块真正干活的地方,很有趣哦。

这里要用到请求结构体,主要是这些结构体成员:

typedef struct {
...
/* the memory pool, used in the ngx_palloc functions */
ngx_pool_t *pool;

页面

Subscribe to RSS - 开发工具