HandleHttpRequest Processor
描述
启动 HTTP 服务器并监听 HTTP 请求。对于每个请求,创建一个 FlowFile 并将其传输到 success 关系。
标签
属性
| 名称 | 默认值 | 可选值 | 描述 |
|---|---|---|---|
| Listening Port | 80 | 侦听传入 HTTP 请求的端口 支持表达式语言:是(仅使用环境/系统变量求值) | |
| Hostname | | 要绑定的主机名。 如果不指定,将绑定到所有主机 | |
| SSL Context Service | | 控制器服务 API:SSLContextProvidercn.org.acal.lynxus-lynxus-standard-services-api-nar-2.11.8 | 用于保护服务器的 SSL 上下文服务。如果指定,服务器将仅接受 HTTPS 请求;否则,服务器将仅接受 HTTP 请求 |
| HTTP Protocols | HTTP_1_1 |
| 支持使用 TLS 进行应用层协议协商的 HTTP 协议 |
| HTTP Context Map | | 控制器服务 API:HttpContextMapcn.org.acal.lynxus-lynxus-standard-services-api-nar-2.11.8 | 用于缓存 HTTP 请求信息的 HTTP 上下文映射Controller Service |
| Allowed Paths | | 指定传入 URL 请求中允许的 HTTP 路径的正则表达式。如果指定了此值且 HTTP 请求的路径不匹配此正则表达式,处理器将响应 404: NotFound。 | |
| Default URL Character Set | UTF-8 | 如果 HTTP 请求未提供 URL 参数,则使用该字符集进行解码 | |
| Allow GET | true |
| 允许 HTTP GET 方法 |
| Allow POST | true |
| 允许 HTTP POST 方法 |
| Allow PUT | true |
| 允许 HTTP PUT 方法 |
| Allow DELETE | true |
| 允许 HTTP DELETE 方法 |
| Allow HEAD | false |
| 允许 HTTP HEAD 方法 |
| Allow OPTIONS | false |
| 允许 HTTP OPTIONS 方法 |
| Maximum Threads | 200 | 嵌入式 HTTP 服务器用于处理请求的最大线程数。 | |
| Request Header Maximum Size | 8 KB | 发送到该处理器的请求中 HTTP 标头支持的最大大小 | |
| Additional HTTP Methods | | 应允许的非标准 HTTP 方法的逗号分隔列表 | |
| Client Authentication | No Authentication |
| 指定处理器是否应对客户端进行身份验证。如果未指定 <SSL Context Service> 属性或提供的 SSL 上下文仅使用密钥库而不使用信任库,则忽略此值。 |
| Container Queue Size | 50 | Http 请求容器队列的大小 | |
| Multipart Request Max Size | 1 MB | 请求的最大大小。仅适用于 Content-Type 为 multipart/form-data 的请求,用于防止拒绝服务类型的攻击,防止填满堆内存或磁盘空间。 | |
| 多部分读取缓冲区大小 | 512 KB | 传入文件内容写入磁盘的阈值大小。仅适用于 Content-Type 为 multipart/form-data 的请求。用于防止拒绝服务类型攻击,防止堆或磁盘空间被填满。 | |
| Parameters to Attributes | | 要作为属性输出的 HTTP 参数或表单数据的逗号分隔列表 |
关系 (Relationships)
| 名称 | 描述 | 自动终止 |
|---|---|---|
success | 接收到的所有内容都会路由到“成功”关系 | 否 |
写入的 FlowFile 属性
| 名称 | 描述 |
|---|---|
http.context.identifier | 允许 HandleHttpRequest 和 HandleHttpResponse 协调哪个 FlowFile 属于哪个 HTTP 请求的标识符 |
mime.type | 根据 HTTP 头 'Content-Type' 确定的数据 MIME 类型 |
http.servlet.path | 请求 URL 中被视为 Servlet Path 的部分 |
http.context.path | 请求 URL 中被视为 Context Path 的部分 |
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.auth.type | 使用的 HTTP 授权类型 |
http.principal.name | 进行请求的已认证用户的名称 |
http.query.param.XXX | 请求中的每个查询参数将作为属性添加,前缀为 'http.query.param.' |
http.param.XXX | 请求中由"参数到属性列表"配置的表单参数将作为属性添加,前缀为"http.param."。不建议放入大尺寸的表单参数。 |
http.subject.dn | 请求者的专有名称。除非处理器配置为使用 SSLContext Service,否则不会填充此值 |
http.issuer.dn | 签发主体证书的实体的专有名称。除非处理器配置为使用 S |
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.headers.multipart.content-disposition"的属性中 |
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' 的请求,所有部件的计数记录到此属性中。 |
状态管理
该组件不存储状态。
受限 (Restricted)
该组件不受限。
输入要求
该组件不允许有传入连接。
另请参阅
详细说明
HandleHttpRequest
使用说明
将此 Processor 与 HandleHttpResponse Processor 配合使用,可以利用 Lynxus 以可视化方式构建一个 Web 服务器, 实现现有 Processor 所能提供的任何功能。例如,可以通过构建如下流程,为 SFTP 服务器搭建一个基于 Web 的前端:
HandleHttpRequest -> PutSFTP -> HandleHttpResponse
HandleHttpRequest Processor 提供了若干属性,用于配置支持哪些 HTTP 方法、支持哪些路径以及 SSL 配置。
对于处理包含多个分片(part)、Content-Type 为 multipart/form-data 的请求,需要额外注意。 每个分片(part)都会生成一个独立的 FlowFile,并为这些 FlowFile 写入以下特殊 Attribute:
- http.context.identifier
- http.multipart.fragments.sequence.number
- http.multipart.fragments.total.number
这些 Attribute 可用于为 HandleHttpResponse Processor 实现一种门控机制: 等待序号为 http.multipart.fragments.sequence.number 的 FlowFile 处理完成, 直到同一 http.context.identifier(每个请求唯一)下的全部 http.multipart.fragments.total.number 个 FlowFile 都处理完毕。