Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed. By using the non-blocking network I/O, Tornado can scale to tens of thousands of open connections, making it ideal for long polling, WebSockets, and other applications that require a long-lived connection to each user.
- Improved debug logging on Python 3.
Transfer-Encodingheaders are no longer sent with 1xx or 204 responses (this was already true of 304 responses).
- Reading chunked requests no longer leaves the connection in a broken state.
- Writing a memoryview can no longer result in “BufferError: Existing exports of data: object cannot be re-sized”.
- Duplicate option names are now detected properly whether they use hyphens or underscores.
- .AsyncHTTPTestCase.fetch now uses
localhost, improving compatibility with systems that have partially-working ipv6 stacks.
- It is no longer allowed to send a body with 1xx or 204 responses.
- Requests with invalid websocket headers now get a response with status code 400 instead of a closed connection.