龙空技术网

Nginx之HTTP过滤模块

Linux特训营 1398

前言:

现时咱们对“c语言httplinux”大致比较关切,同学们都需要了解一些“c语言httplinux”的相关内容。那么小编同时在网络上汇集了一些对于“c语言httplinux””的相关知识,希望小伙伴们能喜欢,兄弟们快快来了解一下吧!

详细教程资料+课件 关注+后台私信;资料;两个字可以免费视频领取+文档+各大厂面试题 资料内容包括:C/C++,Linux,golang,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK,嵌入式 等。

1. HTTP 过滤模块ngx_http_not_modified_module

仅对 HTTP 头部做处理。在返回 200 成功时,根据请求中 If-Modified-Since 或者 If-Unmodified-Since 头部取得浏览器缓存文件的时间,再分析返回用户文件的最后修改时间,以此决定是否直接发送 304 Not Modified 响应给用户。

ngx_http_range_body_filter_module

处理请求中 Range 信息,根据 Rrange 中的要求返回文件的一部分给用户

ngx_http_copy_filter_module

仅对HTTP包体做处理。将用户发送的 ngx_chain_t 结构的 HTTP 包体复制到新的 ngx_chain_t 结构中(都是各种指针的复制,不包括实际 HTTP 响应内容),后续的 HTTP 过滤模块处理的 ngx_chain_t 类型的成员都是 ngx_http_copy_filter_module 模块处理后的变量。

ngx_http_headers_filter_module

仅对 HTTP 头部做处理。允许通过修改 nginx.conf 配置文件,在返回给用户的响应中添加任意的 HTTP 头部。

ngx_http_userid_filter_module

仅对 HTTP 头部做处理。这就是执行 configure 命令时得到的 http_userid_module 模块,它基于 cookie 提供了简单的认证管理功能。

ngx_http_charset_filter_module

可以将文本类型返回给用户的响应包,按照 nginx.conf 中的配置重新进行编码,再返回给用户

ngx_http_ssi_filter_module

支持 SSI(Server Side Include,服务器端嵌入)功能,将文件内容包含到网页中并返回给用户

ngx_http_postpone_filter_module

仅对 HTTP 包体做处理。它仅应用于 subrequest 产生的子请求。它使得多个子请求同时向客户端发送响应时能够有序,所谓的"有序"是指按照构造子请求的顺序发送响应。

ngx_http_gzip_filter_module

对特定的 HTTP 响应包体(如网页或者文本文件)进行gzip压缩,再把压缩后的内容返回给用户

ngx_http_range_header_filter_module

支持range协议

ngx_chunked_filter_module

支持 chunk 编码

ngx_http_header_filter_module

仅对 HTTP 头部做处理。该过滤模块将会把 r->headers_out 结构体中的成员序列化为返回给用户的 HTTP 响应字节流,包括响应行(如 HTTP/1.1 200 OK)和响应头部,并通过调用 ngx_http_write_filter_module 过滤模块中的过滤方法直接将 HTTP 包头发送到客户端

ngx_http_write_filter_module

仅对 HTTP 包体做处理。该模块负责向客户端发送 HTTP 响应

2. HTTP 过滤模块开发步骤

详细教程资料+课件 关注+后台私信;资料;两个字可以免费视频领取+文档+各大厂面试题 资料内容包括:C/C++,Linux,golang,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK,嵌入式 等。

确定源代码文件名称创建 config 文件,HTTP_MODULES 改为 HTTP_FILTER_MODULES 变量,多个源代码文件实现 1 个 HTTP 过滤模块时,需在 NGX_ADDON_SRCS 变量中添加其他源代码文件定义过滤模块处理感兴趣的配置项实现初始化方法:初始化方法就是把模块中处理HTTP头部的ngx_http_output_header_filter_pt方法与处理HTTP包体的ngx_http_output_body_filter_pt方法插入到过滤模块链表的首部。实现处理 HTTP 头部的方法:实现 ngx_http_ouput_header_filter_pt 原型的方法,用于处理 HTTP 头部实现处理 HTTP 包体的方法:实现 ngx_http_ouput_body_filter_pt 原型的方法,用于处理 HTTP 包体编译安装总结:更多视频教程文档资料免费领取后台私信【资料】自行获取内容包括:C/C++,Linux,golang,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK,嵌入式 等。

标签: #c语言httplinux