You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The urllib3 test suite includes an HTTP/1.1 proxy that supports CONNECT. This works by first establishing an HTTP connection, and then exchanging raw bytes over TCP. When porting this to Hypercorn, I realized that the ASGI protocol offers no way of exchanging raw bytes or getting access to the transport (django/asgiref#112, encode/uvicorn#400).
(This might not be an issue for HTTP/2 where CONNECT works with DATA frames, but h2 does not currently support CONNECT python-hyper/h2#319 anyway and outright rejects requests made by curl --proxy-http2. So let's make this issue about HTTP/1.1)
The two options are:
Implement absolute URI and CONNECT in Hypercorn itself
Give access to the transport, without any guarantees made
The urllib3 test suite includes an HTTP/1.1 proxy that supports
CONNECT
. This works by first establishing an HTTP connection, and then exchanging raw bytes over TCP. When porting this to Hypercorn, I realized that the ASGI protocol offers no way of exchanging raw bytes or getting access to the transport (django/asgiref#112, encode/uvicorn#400).(This might not be an issue for HTTP/2 where CONNECT works with
DATA
frames, but h2 does not currently support CONNECT python-hyper/h2#319 anyway and outright rejects requests made bycurl --proxy-http2
. So let's make this issue about HTTP/1.1)The two options are:
urllib3 currently does the latter, see urllib3@7269fd3.
Would you consider reviewing a contribution along those lines?
The text was updated successfully, but these errors were encountered: