| 语言 | 格式 | 评分 |
|---|---|---|
英语 | .pdf | 3 |
| 摘要 | ||
文档介绍了Waitress 2.1.2版本的更新内容,包括新增支持预绑定套接字功能,修复了在1xx、204、304响应中发送Transfer-Encoding或Content-Length的问题,完全忽略了WSGI应用程序发送的消息正文,遵循HTTP标准。文档还提到将asyncore引入到内部作为waitress.wasyncore,并修复了与标题长度计算相关的错误,解决了发送413错误的问题。此外,文档更新了paste.translogger的文档,并修复了与标题长度计算相关的错误,解决了发送413错误的问题。 | ||
| AI总结 | ||
### Waitress 2.1.2 版本更新总结
#### 1. 新功能
- **预绑定套接字支持**:Waitress 现在支持接受已预绑定的套接字列表,而不是自行创建套接字。此功能允许使用 `socket activation` 的初始化系统(如 systemd)更好地管理套接字。但目前不直接支持初始化系统的集成。
- **服务器头省略**:通过设置 `ident=None` 或 `ident=''`,可以省略服务器头信息。
#### 2. Bug 修复
- **HTTP 标准遵循**:修复了 Waitress 在处理 1xx、204 和 304 状态码时的行为,不再发送 `Transfer-Encoding` 或 `Content-Length` 头,并忽略 WSGI 应用程序发送的消息正文,严格符合 HTTP 标准。
- **Unicode 编码问题**:修复了在启用 `expose_tracebacks` 时,Unicode 编码失败导致的错误处理问题。
- **头长度计算**:修复了在接收跨多次套接字读取的数据时,头长度计算错误的问题,避免返回 `413 Request Entity Too Large` 错误。
- **套接字竞态条件**:修复了 WSGI 线程在发送数据时可能因套接字关闭而导致应用程序崩溃的问题,改为通过主线程清理套接字。
#### 3. 兼容性改进
- **asyncore 内部化**:将 `asyncore` 移植到 Waitress 内部(`waitress.wasyncore`),以应对未来 Python 标准库移除 `asyncore` 的情况。
#### 4. 文档更新
- 整合了 Pyramid 的 `paste.translogger` 文档,重新组织和清理了文档内容,提升可读性。
#### 5. 安全改进
- 修复了 HTTP 头中下划线可能导致的安全问题,现在会过滤掉包含下划线的头字段,防止潜在的安全风险。
#### 6. 其他改进
- 支持通过 `python -mwaitress` 直接运行。
- 修复了 IPv4 和 IPv6 绑定问题,改进了对多个套接字的监听支持。
- 修复了非 ASCII 字符请求 URL 处理问题,避免连接意外关闭。
#### 7. 版本历史
- **2.1.0**:引入了 WSGI 线程发送数据到套接字的新功能,但修复了由此引发的竞态条件问题。
- **1.4.2**:修复了 HTTP 请求走私(request smuggling)漏洞,提升了安全性。
- **1.4.1**:改进了对非打印字符的处理,进一步提升了安全性。
#### 8. 注意事项
- **Python 2.6 已不再支持**:从某个版本开始,Python 2.6 已被移除支持。
- **IPv6 支持**:支持同时绑定 IPv4 和 IPv6 套接字。
总结:Waitress 2.1.2 版本在功能、性能、安全性和文档方面均有显著改进,特别在 HTTP 标准遵循、套接字管理、错误处理和安全性方面表现突出,适合需要高性能 WSGI 服务器的开发者使用。 | ||
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
P11
P12
下载文档到本地,方便使用
- 可预览页数已用完,剩余
103 页请下载阅读 -
文档评分














waitress Documentation v2.1.2
waitress Documentation v2.1.1