ngx_http_request_s

/*
罗剑锋老师的注释参考:
https://github.com/chronolaw/annotated_nginx/blob/master/nginx/src/http/ngx_http_request.h
*/struct ngx_http_request_s {uint32_t signature; /* "HTTP" */ngx_connection_t *connection;void **ctx;void **main_conf;void **srv_conf;void **loc_conf;ngx_http_event_handler_pt read_event_handler;ngx_http_event_handler_pt write_event_handler;#if (NGX_HTTP_CACHE)ngx_http_cache_t *cache;
#endifngx_http_upstream_t *upstream;ngx_array_t *upstream_states;/* of ngx_http_upstream_state_t */ngx_pool_t *pool;ngx_buf_t *header_in;ngx_http_headers_in_t headers_in;ngx_http_headers_out_t headers_out;ngx_http_request_body_t *request_body;time_t lingering_time;time_t start_sec;ngx_msec_t start_msec;ngx_uint_t method;ngx_uint_t http_version;ngx_str_t request_line;ngx_str_t uri;ngx_str_t args;ngx_str_t exten;ngx_str_t unparsed_uri;ngx_str_t method_name;ngx_str_t http_protocol;ngx_str_t schema;ngx_str_t charset;ngx_str_t cookie_self;ngx_str_t user_name;ngx_chain_t *out;ngx_http_request_t *main;ngx_http_request_t *parent;ngx_http_postponed_request_t *postponed;ngx_http_post_subrequest_t *post_subrequest;ngx_http_posted_request_t *posted_requests;ngx_int_t phase_handler;ngx_http_handler_pt content_handler;ngx_uint_t access_code;ngx_http_variable_value_t *variables;#if (NGX_PCRE)ngx_uint_t ncaptures;int *captures;u_char *captures_data;
#endifsize_t limit_rate;size_t limit_rate_after;/* used to learn the Apache compatible response length without a header */size_t header_size;off_t request_length;ngx_uint_t err_status;ngx_http_connection_t *http_connection;ngx_http_v2_stream_t *stream;ngx_http_log_handler_pt log_handler;ngx_http_cleanup_t *cleanup;unsigned count:16;unsigned subrequests:8;unsigned blocked:8;unsigned aio:1;unsigned http_state:4;/* URI with "/." and on Win32 with "//" */unsigned complex_uri:1;/* URI with "%" */unsigned quoted_uri:1;/* URI with "+" */unsigned plus_in_uri:1;/* URI with empty path */unsigned empty_path_in_uri:1;unsigned invalid_header:1;unsigned add_uri_to_alias:1;unsigned valid_location:1;unsigned valid_unparsed_uri:1;unsigned uri_changed:1;unsigned uri_changes:4;unsigned request_body_in_single_buf:1;unsigned request_body_in_file_only:1;unsigned request_body_in_persistent_file:1;unsigned request_body_in_clean_file:1;unsigned request_body_file_group_access:1;unsigned request_body_file_log_level:3;unsigned request_body_no_buffering:1;unsigned subrequest_in_memory:1;unsigned waited:1;#if (NGX_HTTP_CACHE)unsigned cached:1;
#endif#if (NGX_HTTP_GZIP)unsigned gzip_tested:1;unsigned gzip_ok:1;unsigned gzip_vary:1;
#endif#if (NGX_PCRE)unsigned realloc_captures:1;
#endifunsigned proxy:1;unsigned bypass_cache:1;unsigned no_cache:1;/** instead of using the request context data in* ngx_http_limit_conn_module and ngx_http_limit_req_module* we use the bit fields in the request structure*/unsigned limit_conn_status:2;unsigned limit_req_status:3;unsigned limit_rate_set:1;unsigned limit_rate_after_set:1;#if 0unsigned cacheable:1;
#endifunsigned pipeline:1;unsigned chunked:1;unsigned header_only:1;unsigned expect_trailers:1;unsigned keepalive:1;unsigned lingering_close:1;unsigned discard_body:1;unsigned reading_body:1;unsigned internal:1;unsigned error_page:1;unsigned filter_finalize:1;unsigned post_action:1;unsigned request_complete:1;unsigned request_output:1;unsigned header_sent:1;unsigned expect_tested:1;unsigned root_tested:1;unsigned done:1;unsigned logged:1;unsigned buffered:4;unsigned main_filter_need_in_memory:1;unsigned filter_need_in_memory:1;unsigned filter_need_temporary:1;unsigned preserve_body:1;unsigned allow_ranges:1;unsigned subrequest_ranges:1;unsigned single_range:1;unsigned disable_not_modified:1;unsigned stat_reading:1;unsigned stat_writing:1;unsigned stat_processing:1;unsigned background:1;unsigned health_check:1;/* used to parse HTTP headers */ngx_uint_t state;ngx_uint_t header_hash;ngx_uint_t lowcase_index;u_char lowcase_header[NGX_HTTP_LC_HEADER_LEN];u_char *header_name_start;u_char *header_name_end;u_char *header_start;u_char *header_end;/** a memory that can be reused after parsing a request line* via ngx_http_ephemeral_t*/u_char *uri_start;u_char *uri_end;u_char *uri_ext;u_char *args_start;u_char *request_start;u_char *request_end;u_char *method_end;u_char *schema_start;u_char *schema_end;u_char *host_start;u_char *host_end;u_char *port_start;u_char *port_end;unsigned http_minor:16;unsigned http_major:16;
};
ngx_http_headers_out_t
/*
罗剑锋老师的注释参考:
https://github.com/chronolaw/annotated_nginx/blob/master/nginx/src/http/ngx_http_request.h
*/typedef struct {ngx_list_t headers;ngx_list_t trailers;ngx_uint_t status;ngx_str_t status_line;ngx_table_elt_t *server;ngx_table_elt_t *date;ngx_table_elt_t *content_length;ngx_table_elt_t *content_encoding;ngx_table_elt_t *location;ngx_table_elt_t *refresh;ngx_table_elt_t *last_modified;ngx_table_elt_t *content_range;ngx_table_elt_t *accept_ranges;ngx_table_elt_t *www_authenticate;ngx_table_elt_t *expires;ngx_table_elt_t *etag;ngx_str_t *override_charset;size_t content_type_len;ngx_str_t content_type;ngx_str_t charset;u_char *content_type_lowcase;ngx_uint_t content_type_hash;ngx_array_t cache_control;ngx_array_t link;off_t content_length_n;off_t content_offset;time_t date_time;time_t last_modified_time;
} ngx_http_headers_out_t;
ngx_list_t
typedef struct {ngx_list_part_t *last;ngx_list_part_t part;size_t size;ngx_uint_t nalloc;ngx_pool_t *pool;
} ngx_list_t;
相关文章:
ngx_http_request_s
/* 罗剑锋老师的注释参考: https://github.com/chronolaw/annotated_nginx/blob/master/nginx/src/http/ngx_http_request.h */struct ngx_http_request_s {uint32_t signature; /* "HTTP" */ngx_connection_t …...
Docker 学习路线 2:底层技术
了解驱动Docker的核心技术将让您更深入地了解Docker的工作原理,并有助于您更有效地使用该平台。 Linux容器(LXC) Linux容器(LXC)是Docker的基础。 LXC是一种轻量级的虚拟化解决方案,允许多个隔离的Linux系…...
UEFI实战——显示图片
一、准备工作 1.1 BMP格式图片 参考:BMP格式详解获取“BMP格式详解”文档里的图片,命名为Logo.bmp将Logo.bmp图片放到U盘里,U盘格式FAT32二、实例代码 2.1 代码结构 TextPkg/ ├── Display.c ├── GetFile.c ├── Test.c ├── Test.dsc ├── Test.h └── Tes…...
Ansible中的playbook
目录 一、playbook简介 二、playbook的语法 三、playbook的核心组件 四、playbook的执行命令 五、vim 设定技巧 六、基本示例 一、playbook简介 1、playbook与ad-hoc相比,是一种完全不同的运用。 2、playbook是一种简单的配置管理系统与多机器部署系统的基础…...
怎样去除视频中的杂音,保留人声部分?
怎样去除视频中的杂音,保留人声部分?这个简单嘛!两种办法可以搞定:一是进行音频降噪,把无用的杂音消除掉;二是提取人声,将要保留的人声片段提取出来。 这就将两种实用的办公都分享出来…...
基于Qt QTreeView|QTreeWidget控件使用简单版
头文件解析: 这是一个C++代码文件,定义了一个名为MainWindow的类。以下是对每一句的详细解释: ```cpp #ifndef MAINWINDOW_H #define MAINWINDOW_H ``` 这是一个条件编译指令,用于避免头文件的重复包含。`MAINWINDOW_H`是一个宏定义,用于唯一标识这个头文件。 ```cpp #…...
edge浏览器的隐藏功能
1. edge://version 查看版本信息 2. edge://flags 特性界面 具体到某一特性:edge://flags/#overlay-scrollbars 3. edge://settings设置界面 详情可参考chrome: 4. edge://extensions 扩展程序页面 5. edge://net-internals 网络事件信息 6. edge://component…...
安卓抓包之小黄鸟
下载安装 下载地址: https://download.csdn.net/download/yijianxiangde100/88496463 安装apk 即可。 证书配置:...
Django中的FBV和CBV
一、两者的区别 1、在我们日常学习Django中,都是用的FBV(function base views)方式,就是在视图中用函数处理各种请求。而CBV(class base view)则是通过类来处理请求。 2、Python是一个面向对象的编程语言…...
信息泄露--
大唐电信AC简介 大唐电信科技股份有限公司是电信科学技术研究院(大唐电信科技产业集团)控股的的高科技企业,大唐电信已形成集成电路设计、软件与应用、终端设计、移动互联网四大产业板块。 大唐电信AC集中管理平台存在弱口令及敏感信息泄漏漏…...
C#WPF文本格式化模式实例
本文演示C#WPF文本格式化模式实例 WPF 文本渲染优缺点 WPF中的文本渲染和旧式的基于 GDI的应用程序的文本染有很大区别。很大一部分区 别是由于 WPF 的设备无关显示系统造成的,但 WPF 中的文本染也得到了显著增强,能更清晰地显示文本,在 LCD 监视器上尤其如此。 然而,W…...
嵌入式云平台一些基础概念的理解
1.SDK SDK是Software Development Kit的缩写,译为”软件开发工具包”,通常是为辅助开发某类软件而编写的特定软件包,框架集合等,SDK一般包含相关文档,范例和工具。 我自己的理解就似乎,SDK也就是软件开发工具包,他会为其使用者提供一些封装好的接口&…...
【项目管理】生命周期风险评估
规划阶段目标:识别系统的业务战略,以支撑系统的安全需求及安全战略 规划阶段评估重点:1、本阶段不需要识别资产和脆弱性;2、应根据被评估对象的应用对象、应用环境、业务状况、操作要求等方面识别威胁; 设计阶段目标…...
力扣 搜索旋转排序数组 二分
👨🏫 33. 搜索旋转排序数组 class Solution {public int search(int[] nums, int target){int l 0;int r nums.length - 1;while (l < r){int m l r >> 1;//else大法,把无序段抛给else,if只处理有序段 // 需要特…...
【软件测试】个人博客项目测试报告
目录 1.报告概要 2、测试环境 3、手动测试用例编写 4、自动化测试用例 1.报告概要 测试对象:基于SSM项目的博客系统。 测试目的:检测博客项目是否符合预期,并且对测试知识进行练习和巩固。 测试点:主要针对常用的功能进行测…...
Express框架开发接口之今日推荐等模块
1.初始化 const handleDB require(../handleDB/index) // 获取全部模块 exports.allModule (req, res) > {(async function () {})() } // 更新或者添加模块 exports.upModule (req, res) > {(async function () {})() } // 根据id删除模块 exports.delModule (req, …...
UTONMOS:元宇宙顺势而上,重构数字化发展新形态
元宇宙(Metaverse)是一个虚拟的、且与现实世界平行的虚拟世界,由一系列相互关联的技术组成。在这个虚拟世界中,人们可以通过 VR、 AR等设备进入其中,与虚拟人物进行互动。 随着新一代信息技术的飞速发展,元…...
【Nginx37】Nginx学习:SSL模块(一)简单配置与指令介绍
Nginx学习:SSL模块(一)简单配置与指令介绍 又是一个重点模块,SSL 模块,其实就是我们常见的 HTTPS 所需要的配置模块。HTTPS 的重要性不用多说了吧,现在所有的 App、小程序 都强制要求是 HTTPS 的࿰…...
CompletableFuture 异步调用,获取返回值
ExecutorService executor new ThreadPoolExecutor(8, 16, 60,TimeUnit.MINUTES,new ArrayBlockingQueue<>(100));Random randomnew Random(10);//模拟查询用户列表List<User> listselectUsers();//需要执行的任务列表// 任务列表List<CompletableFuture<Us…...
excel利用正则匹配和替换指定内容
上班中, 突然接到电话, 屋里的上司大人发来个excel, 说要替换里面x-x-xxx列的内容为x栋x单元xxx. 大致表格如下, 原表格我就不发了 身为程序猿的我, 肯定第一就想到了 正则! 打开excel-开始-查找和替换, 我擦, 只能完全匹配和替换 比如一次只能替换1-1- -> 为1栋1单元 1-2…...
springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...
51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...
【WiFi帧结构】
文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成:MAC头部frame bodyFCS,其中MAC是固定格式的,frame body是可变长度。 MAC头部有frame control,duration,address1,address2,addre…...
MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例
一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...
2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...
HDFS分布式存储 zookeeper
hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架,允许使用简单的变成模型跨计算机对大型集群进行分布式处理(1.海量的数据存储 2.海量数据的计算)Hadoop核心组件 hdfs(分布式文件存储系统)&a…...
深度学习水论文:mamba+图像增强
🧀当前视觉领域对高效长序列建模需求激增,对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模,以及动态计算优势,在图像质量提升和细节恢复方面有难以替代的作用。 🧀因此短时间内,就有不…...
腾讯云V3签名
想要接入腾讯云的Api,必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口,但总是卡在签名这一步,最后放弃选择SDK,这次终于自己代码实现。 可能腾讯云翻新了接口文档,现在阅读起来,清晰了很多&…...
STM32HAL库USART源代码解析及应用
STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...
