搜索

pdf文档 waitress Documentation v2.1.2

272.79 KB 115 页 0 下载 73 浏览 0 评论 0 收藏
语言 格式 评分
英语
.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 页请下载阅读 -
文档评分
请文明评论,理性发言.