ngx_http_request_t
该结构体中存储了nginx的一次请求的所有信息,其中uri是ngx_str_t类型,另外该结构体中还有成员uri_start和uri_end,很多教程和书里说uri.data的值与uri_start相等,但在url异常的情况下并不是的。
下图中代码在ngx_http_request.c文件中,nginx版本不同行数不同。
那些异常会导致不同
在ngx_http_parse.c文件中,解析http头是会给complex_url和quoted_uri赋值,如下图:
综述
所以,看源码还是非常有必要的。