2014-05-22 12 views
5

Go Sprache http Verbindung Hijacking.Go Hijack Client-Verbindung

Ich weiß, wie man auf der Serverseite hijack. http://golang.org/pkg/net/http/#example_Hijacker

Aber gibt es Weg, es auf Kundenseite zu entführen?

+0

Nicht wirklich (Verbindungen sind im Transport zusammengefasst). Was müssen Sie eigentlich tun? – JimB

+0

Ich habe go_client und go_server. Go_server ist ein Webserver. Ich möchte, dass der Client go_server mit einem Handler verbindet. und nach einer HTTP-Anfrage über rohen Socket mit ihm kommunizieren. Ich wünsche Client, HTTP-Verbindung zu entführen. Natürlich wenn es möglich ist. z.B. Eines der Dinge, die ich tun könnte, ist HTTP-Proxy CONNECT anstelle von GET. – Max

Antwort

7

Nein, Sie können dies nicht mit dem Standard-http.Client, aber net/http/httputil hat eine ClientConn, die ein niedriges Niveau http Client, der direkt ein net.Conn wickelt. Es ist Hijack-fähig und arbeitet auf Standard http.Request.

http://golang.org/pkg/net/http/httputil/#ClientConn

Auch, weil Sie beide Seiten kontrollieren, und Sie sollten nichts zu unerwarteten sehen, kann es einfacher sein, die Anforderung zu schreiben einfach, sich die TCP-Verbindung direkt (oder Request.Write() verwenden, wenn Sie wollen Erstellen Sie die Anfrage auf diese Weise)

+0

Ich habe 'ClientConn' noch nicht getestet. Aber ich glaube, es ist die Antwort. Danke – Max