tornado.simple_httpclient now supports the OPTIONS and PATCH
HTTP methods.
tornado.simple_httpclient is better about closing its sockets
instead of leaving them for garbage collection.
tornado.simple_httpclient correctly verifies SSL certificates for
URLs containing IPv6 literals (This bug affected Python 2.5 and 2.6).
tornado.simple_httpclient no longer includes basic auth credentials
in the Host header when those credentials are extracted from the URL.
tornado.simple_httpclient no longer modifies the caller-supplied header
dictionary, which caused problems when following redirects.
tornado.curl_httpclient now supports client SSL certificates (using
the same client_cert and client_key arguments as
tornado.simple_httpclient)
HTTP Server
HTTPServer now works correctly with paths starting with //
HTTPHeaders.copy (inherited from dict.copy) now works correctly.
HTTPConnection.address is now always the socket address, even for non-IP
sockets. HTTPRequest.remote_ip is still always an IP-style address
(fake data is used for non-IP sockets)
Extra data at the end of multipart form bodies is now ignored, which fixes
a compatibility problem with an iOS HTTP client library.
IOLoop and IOStream
IOStream now has an error attribute that can be used to determine
why a socket was closed.
tornado.iostream.IOStream.read_until and read_until_regex are much
faster with large input.
IOStream.write performs better when given very large strings.
tornado.options options with multiple=True that are set more than
once now overwrite rather than append. This makes it possible to override
values set in parse_config_file with parse_command_line.
Template files containing non-ASCII (utf8) characters now work on Python 3
regardless of the locale environment variables.
Templates now support else clauses in
try/except/finally/else blocks.
tornado.web
tornado.web.RequestHandler now supports the PATCH HTTP method.
Note that this means any existing methods named patch in
RequestHandler subclasses will need to be renamed.
tornado.web.addslash and removeslash decorators now send permanent
redirects (301) instead of temporary (302).
RequestHandler.flush now invokes its callback whether there was any data
to flush or not.
Repeated calls to RequestHandler.set_cookie with the same name now
overwrite the previous cookie instead of producing additional copies.
tornado.web.OutputTransform.transform_first_chunk now takes and returns
a status code in addition to the headers and chunk. This is a
backwards-incompatible change to an interface that was never technically
private, but was not included in the documentation and does not appear
to have been used outside Tornado itself.
Fixed a bug on python versions before 2.6.5 when tornado.web.URLSpec regexes
are constructed from unicode strings and keyword arguments are extracted.