包
org.apache.nifi | nifi-standard-nar
描述
启动一个HTTP服务器并监听HTTP请求。对于每个请求,它会创建一个FlowFile并传输到“success”。此处理器旨在与HandleHttpResponse处理器结合使用,以创建一个Web服务。如果是多部分请求,则会为每个部分生成一个FlowFile。
标签
http、https、ingress、listen、request、web service
输入要求
禁止
支持敏感动态属性
否
HandleHttpRequest 2.3.0的更多详细信息
使用说明
将此处理器与HandleHttpResponse处理器配对使用,能够利用NiFi以可视化方式构建一个Web服务器,该服务器可以执行现有处理器所具备的任何功能。例如,可以通过构建如下流程,为SFTP服务器构建一个基于Web的前端:
HandleHttpRequest -> PutSFTP -> HandleHttpResponse
HandleHttpRequest处理器提供了多个属性,用于配置支持的方法、支持的路径以及SSL配置。
在处理包含多个部分且Content-Type为multipart/form-data的请求时,需要格外注意。每个部分都会生成自己的FlowFile。会为这些FlowFile写入一些特殊属性:
- http.context.identifier
- http.multipart.fragments.sequence.number
- http.multipart.fragments.total.number
这些属性可用于为HandleHttpResponse处理器实现一种门控机制,即等待处理序列号为http.multipart.fragments.sequence.number的FlowFile,直到处理完属于同一http.context.identifier(该标识符对于每个请求是唯一的)的最多http.multipart.fragments.total.number个FlowFile。
属性
额外HTTP方法
以逗号分隔的非标准HTTP方法列表,这些方法应被允许。
显示名称 | 额外HTTP方法 |
描述 | 以逗号分隔的非标准HTTP方法列表,这些方法应被允许 |
API名称 | 额外HTTP方法 |
表达式语言作用域 | 不支持 |
是否敏感 | 否 |
是否必需 | 否 |
允许DELETE
允许HTTP DELETE方法。
显示名称 | 允许DELETE |
描述 | 允许HTTP DELETE方法 |
API名称 | 允许DELETE |
默认值 | true |
允许值 | true |
表达式语言作用域 | 不支持 |
是否敏感 | 否 |
是否必需 | 是 |
允许GET
允许HTTP GET方法。
显示名称 | 允许GET |
描述 | 允许HTTP GET方法 |
API名称 | 允许GET |
默认值 | true |
允许值 | true |
表达式语言作用域 | 不支持 |
是否敏感 | 否 |
是否必需 | 是 |
允许HEAD
允许HTTP HEAD方法。
显示名称 | 允许HEAD |
描述 | 允许HTTP HEAD方法 |
API名称 | 允许HEAD |
默认值 | false |
允许值 | true |
表达式语言作用域 | 不支持 |
是否敏感 | 否 |
是否必需 | 是 |
允许OPTIONS
允许HTTP OPTIONS方法。
显示名称 | 允许OPTIONS |
描述 | 允许HTTP OPTIONS方法 |
API名称 | 允许OPTIONS |
默认值 | false |
允许值 | true |
表达式语言作用域 | 不支持 |
是否敏感 | 否 |
是否必需 | 是 |
允许POST
允许HTTP POST方法。
显示名称 | 允许POST |
描述 | 允许HTTP POST方法 |
API名称 | 允许POST |
默认值 | true |
允许值 | true |
表达式语言作用域 | 不支持 |
是否敏感 | 否 |
是否必需 | 是 |
允许PUT
允许HTTP PUT方法。
显示名称 | 允许PUT |
描述 | 允许HTTP PUT方法 |
API名称 | 允许PUT |
默认值 | true |
允许值 | true |
表达式语言作用域 | 不支持 |
是否敏感 | 否 |
是否必需 | 是 |
允许路径
一个正则表达式,用于指定传入URL请求中允许的有效HTTP路径。如果指定了该值,而HTTP请求的路径与该正则表达式不匹配,处理器将返回404:NotFound。
显示名称 | 允许路径 |
描述 | 一个正则表达式,用于指定传入URL请求中允许的有效HTTP路径。如果指定了该值,而HTTP请求的路径与该正则表达式不匹配,处理器将返回404:NotFound |
API名称 | 允许路径 |
表达式语言作用域 | 不支持 |
是否敏感 | 否 |
是否必需 | 否 |
客户端认证
指定处理器是否应对客户端进行认证。如果未指定属性,或者提供的SSL上下文仅使用密钥库而不使用信任库,则此值将被忽略。
显示名称 | 客户端认证 |
描述 | 指定处理器是否应对客户端进行认证。如果未指定属性,或者提供的SSL上下文仅使用密钥库而不使用信任库,则此值将被忽略 |
API名称 | 客户端认证 |
默认值 | 无认证 |
允许值 | 无认证 |
表达式语言作用域 | 不支持 |
是否敏感 | 否 |
是否必需 | 是 |
容器队列大小
HTTP请求容器的队列大小。
显示名称 | 容器队列大小 |
描述 | HTTP请求容器的队列大小 |
API名称 | container-queue-size |
默认值 | 50 |
表达式语言作用域 | 不支持 |
是否敏感 | 否 |
是否必需 | 是 |
默认URL字符集
如果HTTP请求未提供字符集,则用于解码URL参数的字符集。
显示名称 | 默认URL字符集 |
描述 | 如果HTTP请求未提供字符集,则用于解码URL参数的字符集 |
API名称 | 默认URL字符集 |
默认值 | UTF8 |
表达式语言作用域 | 不支持 |
是否敏感 | 否 |
是否必需 | 是 |
主机名
要绑定的主机名。如果未指定,将绑定到所有主机。
显示名称 | 主机名 |
描述 | 要绑定的主机名。如果未指定,将绑定到所有主机 |
API名称 | 主机名 |
表达式语言作用域 | 不支持 |
是否敏感 | 否 |
是否必需 | 否 |
HTTP上下文映射
用于缓存HTTP请求信息的HTTP上下文映射控制器服务。
显示名称 | HTTP上下文映射 |
描述 | 用于缓存HTTP请求信息的HTTP上下文映射控制器服务 |
API名称 | HTTP上下文映射 |
服务接口 | org.apache.nifi.http.HttpContextMapService |
服务实现 | org.apache.nifi.http.StandardHttpContextMap |
表达式语言作用域 | 不支持 |
是否敏感 | 否 |
是否必需 | 是 |
HTTP协议
支持用于TLS应用层协议协商的HTTP协议。
显示名称 | HTTP协议 |
描述 | 支持用于TLS应用层协议协商的HTTP协议 |
API名称 | HTTP协议 |
默认值 | HTTP_1_1 |
允许值 | http/1.1 |
表达式语言作用域 | 不支持 |
是否敏感 | 否 |
是否必需 | 是 |
依赖项 | SSL Context Service设置为任何指定值 |
监听端口
监听传入HTTP请求的端口。
显示名称 | 监听端口 |
描述 | 监听传入HTTP请求的端口 |
API名称 | 监听端口 |
默认值 | 80 |
表达式语言作用域 | JVM级别定义的环境变量和系统属性 |
是否敏感 | 否 |
是否必需 | 是 |
最大线程数
嵌入式HTTP服务器用于处理请求的最大线程数。
显示名称 | 最大线程数 |
描述 | 嵌入式HTTP服务器用于处理请求的最大线程数 |
API名称 | 最大线程数 |
默认值 | 200 |
表达式语言作用域 | 不支持 |
是否敏感 | 否 |
是否必需 | 是 |
多部分读取缓冲区大小
传入文件内容写入磁盘的阈值大小。仅适用于Content-Type为multipart/form-data的请求。用于防止拒绝服务类型的攻击,避免堆空间或磁盘空间被填满。
显示名称 | 多部分读取缓冲区大小 |
描述 | 传入文件内容写入磁盘的阈值大小。仅适用于Content-Type为multipart/form-data的请求。用于防止拒绝服务类型的攻击,避免堆空间或磁盘空间被填满 |
API名称 | multipartread-buffer-size |
默认值 | 512 KB |
表达式语言作用域 | 不支持 |
是否敏感 | 否 |
是否必需 | 是 |
多部分请求最大大小
请求的最大大小。仅适用于Content-Type为multipart/form-data的请求,用于防止拒绝服务类型的攻击,避免堆空间或磁盘空间被填满。
显示名称 | 多部分请求最大大小 |
描述 | 请求的最大大小。仅适用于Content-Type为multipart/form-data的请求,用于防止拒绝服务类型的攻击,避免堆空间或磁盘空间被填满 |
API名称 | multipart-request-maxsize |
默认值 | 1 MB |
表达式语言作用域 | 不支持 |
是否敏感 | 否 |
是否必需 | 是 |
参数转属性列表
以逗号分隔的HTTP参数或表单数据列表,这些数据将作为属性输出。
显示名称 | 参数转属性列表 |
描述 | 以逗号分隔的HTTP参数或表单数据列表,这些数据将作为属性输出 |
API名称 | parameters-to-attributes |
表达式语言作用域 | 不支持 |
是否敏感 | 否 |
是否必需 | 否 |
请求头最大大小
发送到此处理器的请求中支持的HTTP头的最大大小。
显示名称 | 请求头最大大小 |
描述 | 发送到此处理器的请求中支持的HTTP头的最大大小 |
API名称 | 请求头最大大小 |
默认值 | 8 KB |
表达式语言作用域 | 不支持 |
是否敏感 | 否 |
是否必需 | 是 |
SSL上下文服务
用于保护服务器安全的SSL上下文服务。如果指定了该服务,服务器将仅接受HTTPS请求;否则,服务器将仅接受HTTP请求。
显示名称 | SSL上下文服务 |
描述 | 用于保护服务器安全的SSL上下文服务。如果指定了该服务,服务器将仅接受HTTPS请求;否则,服务器将仅接受HTTP请求 |
API名称 | SSL上下文服务 |
服务接口 | org.apache.nifi.ssl.RestrictedSSLContextService |
服务实现 | org.apache.nifi.ssl.StandardRestrictedSSLContextService |
表达式语言作用域 | 不支持 |
是否敏感 | 否 |
是否必需 | 否 |
关系
名称 | 描述 |
success | 接收到的所有内容都将路由到“success”关系 |
写入属性
名称 | 描述 |
http.context.identifier | 一个标识符,用于让HandleHttpRequest和HandleHttpResponse协调哪个FlowFile属于哪个HTTP请求/响应。 |
mime.type | 根据HTTP头“Content-Type”确定的数据的MIME类型 |
http.servlet.path | 请求URL中被视为Servlet路径的部分 |
http.context.path | 请求URL中被视为上下文路径的部分 |
http.method | 用于请求的HTTP方法,如GET或POST |
http.local.name | 服务器的IP地址/主机名 |
http.server.port | 服务器的监听端口 |
http.query.string | 请求URL的查询字符串部分 |
http.remote.host | 请求者的主机名 |
http.remote.addr | 请求者的主机名:端口组合 |
http.remote.user | 请求者的用户名 |
http.protocol | 用于通信的协议 |
http.request.uri | 完整的请求URL |
http.principal.name | 发出请求的已认证用户的名称 |
http.query.param.XXX | 请求中的每个查询参数都将作为一个属性添加,前缀为“http.query.param.” |
http.param.XXX | 请求中由“参数转属性列表”配置的表单参数将作为一个属性添加,前缀为“http.param.”。不建议添加大尺寸的表单参数。 |
http.subject.dn | 请求者的专有名称。除非处理器配置为使用SSLContext服务,否则该值不会被填充。 |
http.issuer.dn | 颁发主体证书的实体的专有名称。除非处理器配置为使用SSLContext服务,否则该值不会被填充。 |
http.certificate.sans.N.name | 来自相互TLS认证的X.509客户端证书主题备用名称值。属性名称有一个基于零的索引,根据客户端证书的内容排序。 |
http.certificate.sans.N.nameType | 来自相互TLS认证的X.509客户端证书主题备用名称类型。属性名称有一个基于零的索引,根据客户端证书的内容排序。属性值是RFC 3280第4.1.2.7节中的通用名称之一。 |
http.headers.XXX | 请求中收到的每个HTTP头都将作为一个属性添加,前缀为“http.headers.”。例如,如果请求包含一个名为“x-my-header”的HTTP头,则该值将被添加到一个名为“http.headers.x-my-header”的属性中。 |
http.headers.multipart.XXX | 多部分请求中收到的每个HTTP头都将作为一个属性添加,前缀为“http.headers.multipart.”。例如,如果多部分请求包含一个名为“content-disposition”的HTTP头,则该值将被添加到一个名为“ |
http.multipart.size | 对于Content-Type为“multipart/form-data”的请求,该部分的内容大小将记录在此属性中 |
http.multipart.content.type | 对于Content-Type为“multipart/form-data”的请求,该部分的内容类型将记录在此属性中 |
http.multipart.name | 对于Content-Type为“multipart/form-data”的请求,该部分的名称将记录在此属性中 |
http.multipart.filename | 对于Content-Type为“multipart/form-data”的请求,当该部分包含上传文件时,文件的名称将记录在此属性中。文件将临时存储在“java.io.File”Java文档中指定的默认临时文件目录中 |
http.multipart.fragments.sequence.number | 对于Content-Type为“multipart/form-data”的请求,该部分的索引将记录在此属性中。索引从1开始。 |
http.multipart.fragments.total.number | 对于Content-Type为“multipart/form-data”的请求,所有部分的数量将记录在此属性中。 |
另请参阅
org.apache.nifi.processors.standard.HandleHttpResponse