Tornado 2.2的新功能

2012年1月30日

集锦

  • 更新和扩展了WebSocket支持。

  • 改进了 Twisted / Tornado 桥的兼容性。

  • 模板错误现在生成更好的堆栈跟踪。

  • 更好的异常处理 tornado.gen .

安全修补程序

  • tornado.simple_httpclient 现在在所有情况下都禁用sslv2。如果python解释器与openssl的1.0之前版本相链接,则以前允许使用sslv2。

向后不兼容的更改

  • tornado.process.fork_processes 现在提出 SystemExit 如果所有子进程都完全退出而不是返回 None . 旧的行为令人惊讶,并且与此函数的大多数文档化示例(没有检查返回值)不一致。

  • 在Python 2.6上, tornado.simple_httpclient 仅支持SSLv3。这是因为python 2.6没有公开一种既支持sslv3又支持tlsv1的方法,同时也不支持不安全的sslv2。

  • tornado.websocket 默认情况下不再支持旧的WebSocket协议的“草稿76”版本,尽管可以通过重写来启用此版本 tornado.websocket.WebSocketHandler.allow_draft76 .

tornado.httpclient

  • SimpleAsyncHTTPClient no longer hangs on HEAD requests, responses with no content, or empty POST/PUT 响应主体。

  • SimpleAsyncHTTPClient 现在支持303和307重定向代码。

  • tornado.curl_httpclient 现在接受非整数超时。

  • tornado.curl_httpclient 现在支持使用空密码进行基本身份验证。

tornado.httpserver

  • HTTPServer 具有 xheaders=True 将不再接受 X-Real-IP 头看起来不像有效的IP地址。

  • HTTPServer 现在对待 Connection 请求头不区分大小写。

tornado.ioloop and tornado.iostream

  • IOStream.write 现在,当给定空字符串时,工作正常。

  • IOStream.read_until (和 read_until_regex )现在,当有大量缓冲数据时性能会更好,这提高了 SimpleAsyncHTTPClient 下载包含大量块的文件时。

  • SSLIOStream 现在工作正常的时候 ssl_version 设置为除 SSLv23 .

  • 空闲的 IOLoops 一秒钟不再醒来几次。

  • tornado.ioloop.PeriodicCallback 停止并重复启动时不再触发重复回调。

tornado.template

  • 模板代码中的异常现在将显示更好的堆栈跟踪,这些跟踪引用了原始模板文件中的行。

  • {{##}} 现在可用于注释(与旧的不同 {{% comment %}} 指令,这些可以包装其他模板指令)。

  • 模板指令现在可以跨多行。

tornado.web

tornado.websocket

  • 更新以支持在RFC6455中最终确定的最新版本的协议。

  • 在所有支持的协议版本中修复了许多错误。

  • tornado.websocket 默认情况下不再支持旧的WebSocket协议的“草稿76”版本,尽管可以通过重写来启用此版本 tornado.websocket.WebSocketHandler.allow_draft76 .

  • WebSocketHandler.write_message 现在接受 binary 发送二进制消息的参数。

  • 子协议(即 Sec-WebSocket-Protocol 现在支持header);请参见 WebSocketHandler.select_subprotocol 详细信息的方法。

  • .WebSocketHandler.get_websocket_scheme 可用于选择适当的URL方案 (ws://wss:// )在以下情况下 HTTPRequest.protocol 设置不正确。

其他模块