Skip to main content

Tornado 2.2的新功能

2012年1月30日

强调

  • 更新和扩展了WebSocket支持。

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

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

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

安全修复

  • tornado.simple_httpclient 现在在所有情况下都禁用SSLv2。如果Python解释器链接到1.0之前版本的OpenSSL,以前SSLv2将被允许。

向后不兼容的更改

  • 如果所有子进程都干净地退出,而不是返回 Nonetornado.process.fork_processes 现在引发 SystemExit。旧的行为是令人惊讶的,并与这个函数(没有检查返回值)的大多数记录的示例不一致。

  • 在Python 2.6上,tornado.simple_httpclient 只支持SSLv3。这是因为Python 2.6没有公开一种方式支持SSLv3和TLSv1,而不支持不安全的SSLv2。

  • 默认情况下,tornado.websocket 不再支持websocket协议的旧的“draft 76”版本,尽管可以通过覆盖 tornado.websocket.WebSocketHandler.allow_draft76 来启用此版本。

tornado.httpclient

  • SimpleAsyncHTTPClient 不再挂起 HEAD 请求,没有内容的响应或空 POST/PUT 响应正文。

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

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

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

tornado.httpserver

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

  • HTTPServer 现在将 Connection 请求标头视为不区分大小写。

tornado.iolooptornado.iostream

  • IOStream.write 现在可以正确工作,当给一个空字符串。

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

  • ssl_version 设置为除 SSLv23 以外的值时,SSLIOStream 现在可以正常工作。

  • 空闲 IOLoops 不再每秒唤醒几次。

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

tornado.template

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

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

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

tornado.web

tornado.websocket

  • 更新以支持最新版本的协议,如RFC 6455中所定义。

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

  • 默认情况下,tornado.websocket 不再支持websocket协议的旧的“draft 76”版本,尽管可以通过覆盖 tornado.websocket.WebSocketHandler.allow_draft76 来启用此版本。

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

  • 现在支持子协议(即 Sec-WebSocket-Protocol 报头);详见 WebSocketHandler.select_subprotocol 方法。

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

其他模块