22次发布
0.4.2 | 2022年10月30日 |
---|---|
0.4.1 | 2021年11月11日 |
0.3.0 | 2021年11月6日 |
0.3.0-alpha.7 | 2021年1月14日 |
0.1.1 | 2018年7月19日 |
#1439 in HTTP服务器
每月148次下载
用于 sentry-conduit
25KB
443 行
conduit-hyper
此crate将一个hyper 0.14
服务器与一个conduit 0.10
应用堆栈集成。
用法
此crate处于维护模式,仅适用于crates.io代码库内部使用。如果您希望使用此crate,请通过问题跟踪器联系我们。
尽管提供了一些针对大请求的保护,但不应直接将此服务器暴露在公共互联网上。强烈建议在生产级反向代理之后使用此类应用的服务器。
应按照我们的安全策略报告潜在的安全漏洞。
错误和panic处理
如果应用程序处理程序返回一个Err(_)
,则服务器将通过tracing
crate记录描述,然后返回一个通用的500状态响应。
如果处理程序panic,则默认panic处理程序将消息打印到stderr,并在不发送响应的情况下关闭连接。将来,这些panic可能被转换为通用的500状态响应。
请求处理
如果请求包含正文,则在将处理程序分配到线程之前,将整个正文缓冲。目前没有对最大正文大小的限制,因此客户端可以通过发送大型正文消耗大量内存。因此,建议使用限制最大正文大小的反向代理。
不有效的UTF-8头值将被替换为空字符串。
conduit::Request
以下提供给应用程序的Request
方法具有值得注意的行为
scheme
始终返回Http,因为目前不支持httpshost
如果Host
头部不是有效的 UTF-8,则返回空字符串。
Request
的所有其他方法应按预期行为。
待办事项
- 在记录错误时包含
X-Request-Id
头部
许可证
根据以下任一许可证授权
- Apache License, Version 2.0, (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 https://opensource.org/licenses/MIT)
依赖项
~5–14MB
~163K SLoC