代理服务器如何与tcp / http连接一起使用?

时间:2012-04-16 11:17:08

标签: sockets networking proxy websocket

由于我是互联网/网络世界的初学者,在编程时我总是把这些疑惑搞得一团糟;)..我的怀疑是,

  1. 在代理后工作时,我的请求和响应如何工作? 这是否意味着我的请求标头和数据将首先到达代理服务器 - >然后代理服务器将它(相同的头和数据)发送到相应的服务器。 服务器响应它并使用响应头和代理服务器的主体 - >然后代理服务器将其发送到我的计算机。右

  2. 使用websockets时,我们正在将HTTP连接升级到TCP。此时代理服务器发生了什么?代理服务器是否还将其连接升级为普通TCP?

  3. 打开此类TCP连接后,代理服务器是否能够跟踪/记录这些套接字消息?

  4. 最重要的是,代理服务器是透明的还是像客户端前面的原始服务器一样?
  5. 提前感谢您提供任何答案或有用的链接。

2 个答案:

答案 0 :(得分:3)

  1. 右。

  2. 没有'将HTTP升级到TCP'这样的事情。 HTTP连接已经是TCP连接。因此,这个问题毫无意义。

  3. 能够跟踪连接,并且可以看到双向交换的所有数据。

  4. 我不确定这意味着什么。处理CONNECT命令后,代理只会在两个方向上复制字节。根据你的问题,这可能是“透明的”。

答案 1 :(得分:0)

  1. 是的,这是对的。

  2. 如果你在谈论html5 websockets,那么需要提到几件事。首先使用websockets你需要一个处理这种连接的服务器,我不知道任何服务器会支持它。有一些实现该功能的apache模块,还有perl和python独立的应用程序。尽管如此,除非你的服务器可以处理websockets,否则什么都不会发生。 同样适用于websockets代理,它可以在类似的原则上工作,我没有阅读websockets协议规范,但服务器将读取数据包的目标地址并将它们中继到服务器,然后中继服务器返回。我实际上还没有听说过websockets代理服务器,也不知道我该如何写它,我不相信还有这样的东西;请记住,协议仍未完全标准化。

  3. 在所有数据包通过代理传输之后,我会这么认为,除非您通过SSL对其进行加密。

  4. 道歉我无法向您提供更多信息,但我最近才开始使用websockets,而且它仍然不是很普遍的技术。

    此外,我会指出您关注资源,他们似乎为您的问题提供了一些答案:

    http://www.infoq.com/articles/Web-Sockets-Proxy-Servers http://stackoverflow.com/questions/2201317/why-dont-current-websocket-client-implementations-support-proxies

    http://en.wikipedia.org/wiki/WebSocket#Proxy_traversal