What's new in Tornado 4.5.3
===========================

Jan 6, 2018
------------

`tornado.curl_httpclient`
~~~~~~~~~~~~~~~~~~~~~~~~~

- Improved debug logging on Python 3.

`tornado.httpserver`
~~~~~~~~~~~~~~~~~~~~

- ``Content-Length`` and ``Transfer-Encoding`` headers 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.

`tornado.iostream`
~~~~~~~~~~~~~~~~~~

- Writing a `memoryview` can no longer result in "BufferError:
  Existing exports of data: object cannot be re-sized".

`tornado.options`
~~~~~~~~~~~~~~~~~

- Duplicate option names are now detected properly whether they use
  hyphens or underscores.

`tornado.testing`
~~~~~~~~~~~~~~~~~

- `.AsyncHTTPTestCase.fetch` now uses ``127.0.0.1`` instead of
  ``localhost``, improving compatibility with systems that have
  partially-working ipv6 stacks.

`tornado.web`
~~~~~~~~~~~~~

- It is no longer allowed to send a body with 1xx or 204 responses.

`tornado.websocket`
~~~~~~~~~~~~~~~~~~~

- Requests with invalid websocket headers now get a response with
  status code 400 instead of a closed connection.
