CherryPy incorrect output for 1xx, 204, 304

Anonymous avatarAnonymous created an issue

CherryPyWSGIServer will close a potential Keep-Alive connection ('Connection: close' header) when responses lack a Content-Length value. This is correct behavior most of the time, except for 204 No Content and more importantly 304 Not Modified response codes.

As per RFC 2616: these responses must not contain a response body, and thus lack a Content-Length header. Browsers/clients do not require the Content-Length header for these responses during Keep-Alive as they are "always terminated by the first empty line after the header fields".

Meaning the server should maintain a Keep-Alive connection (when appropriate) for these two respone codes.

Patch attached

Reported by

Comments (2)

  1. Log in to comment
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.