Go net.Dialer for HTTP(S) CONNECT Tunneling.
A net.Dialer
drop-in that establishes the TCP connection over an HTTP CONNECT Tunnel.
Some enterprises have fairly restrictive networking environments. They typically operate HTTP forward proxies that require user authentication. These proxies usually allow HTTPS (TCP to :443
) to pass through the proxy using the CONNECT
method. The CONNECT
method is basically a HTTP-negotiated "end-to-end" TCP stream... which is exactly what net.Conn
is :)
Because if you want to call gRPC services which are exposed publicly over :443
TLS over an HTTP proxy, you can't.
Also, this allows you to call any TCP service over HTTP CONNECT
... if your proxy allows you to ¯\(ツ)/¯
http://proxy.example.com:3128
https://proxy.example.com
)Proxy-Authenticate
, with challenge-response semanticsBasic
authRemoteAddr
remappinggo-http-dialer
is released under the Apache 2.0 license. See the LICENSE file for details.