Tornado 6.5 Documentation
1.12 MB
272 页
0 评论
语言 | 格式 | 评分 |
---|---|---|
英语 | .pdf | 3 |
摘要 | ||
文档详细记录了Tornado框架版本6.5.1的更新内容,包括新功能、改进和安全性增强。主要更新涉及tornado.web模块,如支持PATCH HTTP方法、改进静态文件处理和请求处理;tornado.websocket模块支持最新协议和子协议;tornado.httpclient改进了请求处理和安全性;tornado.iostream优化了IO操作;tornado.options改进了配置解析和日志输出。同时,文档还列出了与之前版本的不兼容性更改,包括安全cookie的改进和错误处理的变化。 | ||
AI总结 | ||
以下是对《Tornado 6.5 Documentation》的内容进行的简洁总结,重点突出核心观点和关键信息:
---
### **Tornado 6.5.1 版本更新摘要**
#### **新功能**
1. **改进的性能与兼容性**:
- 提升了 Mac OS X 和 BSD(基于 kqueue 的 IOLoop)上的性能。
- 增加了对 Windows 的实验性支持。
- 引入了全新的 `AsyncHTTPClient`(作为 `tornado.httpclient.AsyncHTTPClient2`),未来将成为默认客户端。
- 支持通过 `HTTPServer.start()` 实现多进程预分叉(pre-forking)。
- HTTP 服务器支持 SSL 和 gzip。
- 支持通过应用配置中的名称从模板和请求处理器引用 URL。
2. **WebSocket 协议更新**:
- 更新至最新的 WebSocket 协议(RFC 6455),默认不再支持旧的“draft 76”版本。
- 支持子协议(Sec-WebSocket-Protocol 头)和二进制消息发送。
- 增加了 `get_websocket_scheme` 方法以选择正确的 URL 方案(ws:// 或 wss://)。
3. **静态文件处理**:
- 静态文件可以通过 `static_url_prefix` 设置配置不同的路径。
- 静态文件处理器支持 `get_modified_time` 方法处理“aware” datetime 对象。
4. **模板与国际化**:
- 模板支持多行指令和 `{# #}` 格式的注释。
- 支持非 ASCII 字符(UTF-8)模板文件。
- 国际化模块支持标准 `.mo` 文件。
5. **测试与调试**:
- 新增 `tornado.testing.bind_unused_port` 函数以安全选择端口。
- 测试框架支持 `gen_test` 装饰器和 `ExpectLog` 对日志进行细粒度控制。
6. **安全性**:
- 修复了潜在的请求伪造(request-smuggling)漏洞。
- 静态文件处理器修复了开放重定向漏洞。
#### **改进与优化**
1. **IOLoop 与 IOStream**:
- `IOStream` 支持错误属性,用于判断套接字关闭的原因。
- `read_until` 和 `read_until_regex` 方法性能提升。
- `IOLoop.instance()` 现为线程安全。
2. **HTTP 客户端**:
- `curl_httpclient` 支持 `prepare_curl_callback` 和 `header_callback`。
- 默认 User-Agent 现为 `Tornado/$VERSION`。
- 支持设置 `request_timeout` 和 `connect_timeout` 为 0 以禁用超时。
3. **模板引擎**:
- 支持 `try/except/finally/else` 块中的 `else` 子句。
- 错误堆栈显示模板文件原始代码行数。
4. **日志与配置**:
- 日志配置更灵活,支持彩色日志。
- `tornado.options` 支持属性赋值和多选项覆盖。
#### **不兼容性变更**
1. **安全 Cookie**:
- 新版安全 Cookie 更安全,但与 Tornado 0.2 版本不兼容。
- 需要使用 `include_name=False` 读取旧版本 Cookie。
2. **请求处理**:
- `RequestHandler.get_error_html()` 现通过关键字参数传递异常对象。
- 路径参数中的 `%` 转义字符被解码,与查询参数处理一致。
3. **模板与静态文件**:
- `OutputTransform.transform_first_chunk` 接口变更,需返回状态码。
- `addslash` 和 `removeslash` 重定向默认为 301(永久重定向)。
#### **Bug 修复**
1. **HTTP 服务器**:
- 修复了 `HTTPServer` 处理以 `//` 开头路径的错误。
- `multipart/form-data` 的兼容性问题得以解决。
2. **WebSocket**:
- 未关闭的客户端连接会可靠地记录警告。
- 子协议参数默认为 `None`,避免了可变默认列表问题。
3. **其他模块**:
- `tornado.process.fork_processes` 正确重播随机模块,即使 `os.urandom` 未实现。
- `tornado.stack_context.wrap` 修复了上下文泄漏问题。
---
### **总结**
Tornado 6.5.1 版本主要集中在性能优化、安全性提升和功能增强,特别是在 WebSocket 协议、静态文件处理、国际化支持和测试框架方面有显著改进。同时,修复了多个安全漏洞和 Bug,提升了整体稳定性。用户在升级时需注意与旧版本的不兼容性变更。 |
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
P11
P12
下载文档到本地,方便使用
- 可预览页数已用完,剩余
260 页请下载阅读 -
文档评分