我对在Go中创建一个HTTP代理(注意:不是反向代理)感兴趣。我只对实现CONNECT
方法感兴趣。其他方法对我来说无关紧要。https://github.com/elazarl/goproxy非常接近我想要做的事情,但我也对supporting CONNECT
when client is connected to proxy using HTTP/2感兴趣。据我所知,根据RFC7540,通过HTTP/2的CONNECT
应该可以通过劫持流并在其上进行TCP隧道来工作。
- http2responseWriter没有实现http.Hijacker。一个想法是它实现了
http.Hijacker
,这将允许访问底层TCP连接而不是HTTP流。
...或者还有其他我可以采取的方法,而不必实现低级HTTP/2功能吗?
4条答案
按热度按时间ztmd8pv51#
@agnivade 或许我应该用不同的措辞。请将此视为一个功能请求,即在HTTP/2中访问原始流。
ojsjcaue2#
好的。
@bradfitz
nbnkbykc3#
关于这个的任何更新吗?这对于构建适用于HTTP/2的代理非常有用!
jpfvwuh44#
我也对基于单个http2流的隧道解决方案劫持http2流感兴趣。已经创建了一个分支,可以在handle方法https://github.com/becheran/net中劫持http2流。我想最好不要使用原始的
http.Hijacker
接口,而是使用一些特定的流接口,以免混淆。这会不会成为http2库的一个功能?