| 语言 | 格式 | 评分 |
|---|---|---|
英语 | .pdf | 3 |
| 摘要 | ||
Tornado是一个基于Python的Web框架和异步网络库,最初由FriendFeed开发。它通过非阻塞网络I/O实现高效的长轮询和WebSocket连接,适用于需要长期连接的应用。Tornado的核心组件包括Web框架、HTTP客户端和服务器,以及异步网络库。文档详细介绍了Tornado的异步处理机制、版本更新内容(如安全性改进、对Python版本的支持调整)、新的TCP客户端功能、WebSocket支持、文件上传优化等。Tornado还提供了与WSGI的兼容性,但推荐使用其内置的HTTP服务器和Web框架以充分利用其性能优势。 | ||
| AI总结 | ||
### Tornado 6.4 文档总结
#### 1. 概述
Tornado 是一个高性能的 Python Web 框架和异步网络库,最初由 FriendFeed 开发。它通过非阻塞网络 I/O 实现了高并发处理能力,适用于长轮询、WebSocket 等需要长期连接的应用场景。
Tornado 的主要组件包括:
- **Web 框架**:基于 `RequestHandler` 创建 Web 应用,并提供支持类。
- **HTTP 客户端和服务器**:实现 HTTP 协议,提供 `HTTPServer` 和 `AsyncHTTPClient`。
- **异步网络库**:基于 `IOLoop` 和 `IOStream` 的异步网络通信模块。
Tornado 提供了一个全栈 Web 解决方案,但不建议将其用作 WSGI 容器,而应结合其自身的 Web 框架和 HTTP 服务器使用。
---
#### 2. 异步与非阻塞 I/O
Tornado 使用单线程事件循环来处理高并发请求,所有应用代码应尽可能异步和非阻塞。异步和非阻塞虽然常被混用,但含义不同:
- **异步**:任务之间通过事件循环协调。
- **非阻塞**:I/O 操作不会阻塞事件循环。
---
#### 3. 更新内容
以下是 Tornado 6.4 的主要更新和改进:
##### 3.1 特性增强
- **WebSocket 支持**:
- 支持 WebSocket 子协议。
- 客户端和服务器端 WebSocket 连接不再缓冲多于一条消息。
- 提供 `selected_subprotocol` 属性查看当前使用的子协议。
- `WebSocketHandler.open` 方法可作为协程使用。
- **HTTP 支持**:
- `tornado.web.stream_request_body` 装饰器支持大文件上传,减少内存占用。
- HTTP 服务器支持更多协议特性,包括分块编码和 gzip 压缩。
- `HTTPServerRequest.write` 方法已弃用,建议使用连接方法。
- **异步网络**:
- `tornado.tcpclient` 模块支持非阻塞 DNS 和 SSL 握手。
- `IOLoop.call_at` 和 `IOLoop.call_later` 现在返回超时句柄。
- `PeriodicCallback` 支持随机超时偏移(jitter)。
##### 3.2 性能优化
- **异步和协程**:
- 协程性能显著提升,更多方法返回 Future。
- `IOLoop` 方法支持设置超时阈值。
- **内存和资源管理**:
- WebSocket 压缩内存限制保护 against DoS 攻击。
- `simple_httpclient` 修复了特定错误导致的超时问题。
##### 3.3 安全改进
- **Cookie 和 CSRF 防护**:
- 修复了 Cookie 解析漏洞,避免绕过 XSRF 保护。
- 支持设置 XSRF Cookie 的额外属性(如 `secure` 和 `httponly`)。
- **日志和错误处理**:
- 提供 `logged_stack` 属性测试异常堆栈是否被记录。
- `RequestHandler.log_exception` 支持记录异常。
##### 3.4 兼容性调整
- **Python 版本**:
- 要求 Python 2.7 或 3.3+,不再支持 2.6 和 3.2。
- PyPy3 支持基于 Python 3.2。
- **模块和接口**:
- `tornado.concurrent.Future` 不再线程安全,建议使用 `concurrent.futures.Future`。
- `tornado.platform.twisted` 模块已弃用,Tornado 现在默认使用 asyncio 事件循环。
- **其他**:
- `tornado.netutil.bind_sockets` 支持 `SO_REUSEPORT`。
- `tornado.httputil.parse_multipart_form_data` 支持非 ASCII 文件名。
---
#### 4. 总结
Tornado 6.4 在性能、安全性和兼容性方面均有显著提升,特别在 WebSocket、HTTP 和异步网络通信领域。开发者应充分利用其异步特性,并注意版本升级后的兼容性调整。 | ||
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余
261 页请下载阅读 -
文档评分














Tornado 6.4 Documentation
Tornado 6.4 Documentation