Skip to content

bpo-1346874: Add 'Expect: 100-Continue' support to httplib #14880

New issue

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

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

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

tbartlett0
Copy link

@tbartlett0 tbartlett0 commented Jul 21, 2019

Previously, http.client would always send content body immediately and ignore any 100 responses. This change makes HTTPClient.request() wait for a Continue response if the Expect: 100-Continue header is set, and adds a parameter to HTTPClient.getresponse() that will cause it to return 100 responses instead of eating them.

https://bugs.python.org/issue1346874

Previously, http.client would always send content body immediately and ignore any 100 responses. This change
makes HTTPClient.request() wait for a `Continue` response if the `Expect: 100-Continue` header is set, and
adds a parameter to HTTPClient.getresponse() that will cause it to return 100 responses instead of eating them.
@tbartlett0
Copy link
Author

This PR is intended to be backwards-compatible, but I have identified two potential edge cases:

  • clients that currently set Expect: 100-Continue with a broken server that ignores the header: This will introduce a delay of expect_timeout seconds to each request. However, this can be fixed by a) not sending the header or b) setting expect_timeout to 0.
  • anyone who redefines HTTPClient.response_class: this is likely to be a breaking change, as a new kwarg is used on HTTPResponse.begin(). (This seems like a fairly rare situation, as it's not exposed as an __init__ param, but chances are that someone, somewhere has done it...)

@csabella csabella requested review from vadmium and orsenthil February 6, 2020 22:29
@csabella csabella requested review from orsenthil and removed request for orsenthil and vadmium June 12, 2020 22:32
@quadoss
Copy link

quadoss commented Apr 5, 2022

Is there an update on this one, its been in open state for couple of years and I too have been hitting this and wanting to see when this would be merged

@emnoor-reef
Copy link

Just bumping. Is this PR on consideration for getting merged? Or, are there any other plans for #42550 ? I am encountering this problem at work.

@python-cla-bot
Copy link

python-cla-bot bot commented Apr 6, 2025

All commit authors signed the Contributor License Agreement.

CLA signed

@IngridMorstrad
Copy link

IngridMorstrad commented Apr 8, 2025

Hi, @tbartlett0
Is this PR still being worked on? Or can someone else (me) take it over?

@AA-Turner
Copy link
Member

Tim would need to (re-)sign the CLA.

@tbartlett0
Copy link
Author

Hi, I haven't touched this since it was submitted, since there seemed to be limited interest and I ended up working around it in other ways. If someone else wants to take it on I have no problem with that (either using my code or rewriting their own, there might be a better way to achieve it)

@tbartlett0
Copy link
Author

@IngridMorstrad
I (re-)signed the CLA, hopefully that clears any issues if you wish to take this on now.

@IngridMorstrad
Copy link

I don't have permissions here, so created a new PR: #133276

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants