搜索

pdf文档 Tornado 6.4 Documentation

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