Nginx系列(一):HTTP处理流程概述

本文详细介绍了Nginx处理HTTP请求的整个流程,从accept阶段开始,涵盖请求接收、解析请求行和请求头、内容处理、上游请求发送及响应处理等关键步骤,深入解析了Nginx在HTTP服务中的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

  • accept阶段(ngx_http_init_connection):
  1. 分配ngx_http_connection_t结构体;
  2. 根据fd的端口和地址,为hc->addr_conf赋值,以供后续server块查询;
  3. 新的fd加入epoll,设置读超时,超时时间为post_accept_timeout,设置连接可重用。

rev:ngx_http_wait_request_handler (此时没有读取任何数据。) wev:
ngx_http_empty_handler

  • 首次读阶段(ngx_http_wait_request_handler):
  1. 分配c->buffer(cscf->client_header_buffer_size大小)用于存储客户端包头;
  2. recv调用接收包头;
  3. 创建ngx_http_request_t。

rev:ngx_http_process_request_line (循环接收请求行,解析请求行)
wev:ngx_http_empty_handler

  • 请求行阶段(ngx_http_process_request_line):
  1. 循环recv,放入r->header_in(c->buffer);
  2. 解析uri,包括r->uri、r->args、r->exten;
  3. 请求行处理结束。

rev:ngx_http_process_request_headers; (循环接收请求头,

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值