Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 33.9k
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 our terms of service and privacy 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
handlerbot commented Jul 16, 2018 • edited by bedevere-bot
Loading Uh oh!
There was an error while loading. Please reload this page.
edited by bedevere-bot
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.
handlerbot commented Jul 16, 2018
Working on fix for BytesWarning now. |
berkerpeksag commented Jul 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 commented Jan 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 commented Jul 2, 2019
Is this going to be merged any time soon? |
berkerpeksag commented Feb 7, 2020
Sorry, I will try to review this PR this weekend. |
keelson commented Sep 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 commented Sep 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 commented Sep 23, 2020
Please answer: what exactly do you see when you say «it crashes»? |
handlerbot commented Mar 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 commented Mar 5, 2021
Sigh, I did mean @sethmlarson not @SethMichaelLarson, sorry about that, the GitHub autocompleter was determined to mislead me! |
orsenthil commented Mar 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 commented Nov 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 commented Jan 12, 2023
why this PR is still open and not merged? and when can be merged? :) |
orsenthil commented Jan 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 commented Mar 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 commented Mar 22, 2023
It's not a feature, it's a shame. HTTP 1.0 is horribly obsolete, |
arhadthedev commented Mar 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 by HTTP/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.py Co-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 by HTTP/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.py Co-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 commented May 20, 2023
@orsenthil Shall we also backport this to 3.11? |
gpshead commented May 20, 2023
No, this is more of a feature. it's a notable behavior change, not a mere unintended behavior fix. |
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