Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork33.3k
gh-66897: Upgrade HTTP CONNECT to protocol HTTP/1.1#8305
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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Uh oh!
There was an error while loading.Please reload this page.
Conversation
Use protocol HTTP/1.1 when sending HTTP CONNECT tunnelling requests;generate Host: headers if one is not already provided (required byHTTP/1.1), convert IDN domains to punycode in HTTP CONNECT requests.
handlerbot commentedJul 16, 2018
Working on fix for BytesWarning now. |
berkerpeksag commentedJul 17, 2018
Thanks for updating that PR, I've just added this to my TODO list, but it may take a while. |
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
handlerbot commentedJan 27, 2019
Hi@berkerpeksag, circling back to this one, do you still have time and interest in the topic, or should we find another reviewer? |
akhayyat commentedJul 2, 2019
Is this going to be merged any time soon? |
berkerpeksag commentedFeb 7, 2020
Sorry, I will try to review this PR this weekend. |
keelson commentedSep 2, 2020
any update? this bug currently blocks any integretion with the linkerd2 proxy as this throws a 400 bad request for connections inititaded by python apps |
merwok commentedSep 23, 2020
Can you show the exact error for this? «crash» usually describes a segfault of the interpreter, is that what happended or was it a regular Python exception? |
merwok commentedSep 23, 2020
Please answer: what exactly do you see when you say «it crashes»? |
handlerbot commentedMar 5, 2021
Hi folks -- would love to try again to get this merged. :-) cc@berkerpeksag who I solicited the original review from, and tagging in@orsenthil and@SethMichaelLarson (I think this is the same GitHub identity for the person who approved#20959, that's who I am looking for, sorry if I tagged the wrong person) who have also reviewed PRs for |
handlerbot commentedMar 5, 2021
Sigh, I did mean@sethmlarson not@SethMichaelLarson, sorry about that, the GitHub autocompleter was determined to mislead me! |
orsenthil commentedMar 5, 2021
Hi Michael, Thanks for following up. I will be able to review and bring it to a closure. |
Uh oh!
There was an error while loading.Please reload this page.
yilinjuang commentedNov 7, 2021
any updates on this? would love to see this merge as it prevents our services from using certain proxies. thanks |
Uh oh!
There was an error while loading.Please reload this page.
lukaszgalezewski commentedJan 12, 2023
why this PR is still open and not merged? and when can be merged? :) |
orsenthil commentedJan 13, 2023
@handlerbot ,@lukaszgalezewski - apologies. None of us go to it. I will review this in coming week and target for upcoming Python release (3.12, if features are allowed) otherwise we can go with 3.13. |
l8huang commentedMar 15, 2023
@orsenthil do you have any update on this? Hope this can be merged in python 3.12. I recently run into this issue, even latest python can't set protocol version for HTTP CONNECT is kind of embarrassment. Thanks. |
roman-vynar commentedMar 22, 2023
It's not a feature, it's a shame. HTTP 1.0 is horribly obsolete, |
arhadthedev commentedMar 22, 2023
orsenthil left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
This looks good to me.
I reviewed for the choices made for handling unicode, and sending Host with HTTP 1.1 for CONNECT, when not specified. And verified if it is backwards compatible.
The feedback in the comments seem to say this helps for folks who had a need too.
This change looks good to me.
Apologize for taking long time.
* bpo-22708: Upgrade HTTP CONNECT to protocol HTTP/1.1 (GH-NNNN)Use protocol HTTP/1.1 when sending HTTP CONNECT tunnelling requests;generate Host: headers if one is not already provided (required byHTTP/1.1), convert IDN domains to punycode in HTTP CONNECT requests.* Refactor tests to pass under -bb (fix ByteWarnings); missed some lines >80.* Use consistent 'tunnelling' spelling in Lib/http/client.py* Lib/test/test_httplib: Remove remnant of obsoleted test.* Use dict.copy() not copy.copy()* fix version changed* Update Lib/http/client.pyCo-authored-by: bgehman <bgehman@users.noreply.github.com>* Switch to for/else: syntax, as suggested* Don't use for: else:* Sure, fine, w/e* Oops* 1nm to the left---------Co-authored-by: Éric <merwok@netwok.org>Co-authored-by: bgehman <bgehman@users.noreply.github.com>Co-authored-by: Oleg Iarygin <oleg@arhadthedev.net>
* bpo-22708: Upgrade HTTP CONNECT to protocol HTTP/1.1 (GH-NNNN)Use protocol HTTP/1.1 when sending HTTP CONNECT tunnelling requests;generate Host: headers if one is not already provided (required byHTTP/1.1), convert IDN domains to punycode in HTTP CONNECT requests.* Refactor tests to pass under -bb (fix ByteWarnings); missed some lines >80.* Use consistent 'tunnelling' spelling in Lib/http/client.py* Lib/test/test_httplib: Remove remnant of obsoleted test.* Use dict.copy() not copy.copy()* fix version changed* Update Lib/http/client.pyCo-authored-by: bgehman <bgehman@users.noreply.github.com>* Switch to for/else: syntax, as suggested* Don't use for: else:* Sure, fine, w/e* Oops* 1nm to the left---------Co-authored-by: Éric <merwok@netwok.org>Co-authored-by: bgehman <bgehman@users.noreply.github.com>Co-authored-by: Oleg Iarygin <oleg@arhadthedev.net>
hugovk commentedMay 20, 2023
@orsenthil Shall we also backport this to 3.11? |
gpshead commentedMay 20, 2023
No, this is more of a feature. it's a notable behavior change, not a mere unintended behavior fix. |
Uh oh!
There was an error while loading.Please reload this page.
Use protocol HTTP/1.1 when sending HTTP CONNECT tunnelling requests; generate Host: headers if one is not already provided (required by HTTP/1.1), convert IDN domains to punycode in HTTP CONNECT requests.
This builds upon and obsoletes#742. cc@berkerpeksag who reviewed that PR.
(I have signed the CLA, but it was less than a day ago, so the human review may not yet be completed.)
https://bugs.python.org/issue22708