pdf文档 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 页请下载阅读 -
文档评分
请文明评论,理性发言.