Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Avoid closing connections when HEAD requests have a content length #428

Merged
merged 1 commit into from
Feb 4, 2024

Conversation

zanieb
Copy link
Contributor

@zanieb zanieb commented Dec 21, 2023

Closes #427

When a WSGI application does not return sufficient content to satisfy the attached Content-Length header, the connection is closed to prevent the client from needlessly waiting. However, HTTP HEAD requests can set a Content-Length header without any content in the body. #7 removed a warning that was incorrectly displayed when this occurs, but the connection was still being closed. As demonstrated in #427, this abrupt close can cause client-side failures. Here, the connection is no longer closed for HEAD requests with Content-Length set, which resolves the linked issue.

@zanieb
Copy link
Contributor Author

zanieb commented Jan 21, 2024

The lint failure here is entirely unrelated to this pull request, it looks like black needs to be run on main?

@digitalresistor digitalresistor merged commit e9796b1 into Pylons:main Feb 4, 2024
26 of 27 checks passed
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this pull request Jun 13, 2024
3.0.0 (2024-02-04)
------------------

- Rename "master" git branch to "main"

- Fix a bug that would appear on macOS whereby if we accept() a socket that is
  already gone, setting socket options would fail and take down the server. See
  Pylons/waitress#399

- Fixed testing of vendored asyncore code to not rely on particular naming for
  errno's. See Pylons/waitress#397

- HTTP Request methods and versions are now validated to meet the HTTP
  standards thereby dropping invalid requests on the floor. See
  Pylons/waitress#423

- No longer close the connection when sending a HEAD request response. See
  Pylons/waitress#428

- Always attempt to send the Connection: close response header when we are
  going to close the connection to let the remote know in more instances.
  Pylons/waitress#429

- Python 3.7 is no longer supported. Add support for Python 3.11, 3.12 and
  PyPy 3.9, 3.10. See Pylons/waitress#412

- Document that trusted_proxy may be set to a wildcard value to trust all
  proxies. See Pylons/waitress#431
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Broken connections with many concurrent HEAD requests
2 participants