【问题标题】:Go hijack client connectionGo劫持客户端连接
【发布时间】:2014-05-22 16:22:31
【问题描述】:

Go 语言 http 连接劫持。

我知道如何在服务器端劫持。 http://golang.org/pkg/net/http/#example_Hijacker

但是有没有办法在客户端劫持它?

【问题讨论】:

  • 并非如此(连接在传输中汇集)。你真正需要做什么?
  • 我有 go_client 和 go_server。 Go_server 是网络服务器。我希望客户端将 go_server 连接到某个处理程序。在一个 HTTP 请求之后,通过原始套接字与其通信。我希望客户端劫持 http 连接。当然如果可能的话。例如我可以做的一件事是 HTTP 代理 CONNECT 而不是 GET。

标签: go go-http


【解决方案1】:

不,您不能使用默认的http.Client 执行此操作,但net/http/httputil 有一个ClientConn,这是一个直接包装net.Conn 的低级http 客户端。它可以劫持,并在标准 http.Request 上运行。

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

另外,由于您控制双方,并且您不应该看到任何太意外的东西,因此直接将请求直接写入 TCP 连接可能会更容易(或者如果您想构建请求,请使用 Request.Write()方式)

【讨论】:

  • 我还没有测试过ClientConn。但我相信这就是答案。谢谢
猜你喜欢
  • 2016-05-31
  • 2011-08-11
  • 2020-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多