【问题标题】:How Proxy server works with tcp/http connections?代理服务器如何与 tcp/http 连接一起工作?
【发布时间】:2012-04-27 17:19:57
【问题描述】:

由于我是互联网/网络领域的初学者,所以我在编程时总是把这些疑问弄得一团糟;)..我的疑问是,

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

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

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

  4. 最重要的是,代理服务器是透明的还是像客户端前面的原始服务器一样工作?

提前感谢您提供任何答案或有用的链接。

【问题讨论】:

    标签: sockets networking proxy websocket


    【解决方案1】:
    1. 对。

    2. 没有“将 HTTP 升级到 TCP”之类的东西。 HTTP 连接已经是 TCP 连接。因此这个问题毫无意义。

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

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

    【讨论】:

      【解决方案2】:
      1. 是的,没错。

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

      3. 我会这样认为,毕竟所有数据包都通过代理传输,除非您通过 SSL 对其进行加密。

      抱歉,我无法为您提供更多信息,但我最近才开始使用 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

      【讨论】:

      • 感谢您的回复。您是说代理服务器在客户端之前就像原始服务器一样吗?或者如果客户端应用程序有办法检测它是否正在与代理/真实服务器通信?
      • 对于常规的 HTTP 代理,它非常依赖,一些发送额外的 HTTP 标头表明它是代理服务器请求 (X-Forwarded-For)。还有其他技术可以确定用户是否在代理后面(flash、ajax、两者的组合...),但如果代理服务器设置正确,则很难检测连接是来自代理还是来自代理不是。至于websockets,我不相信有这样的规范,所以可能有办法绕过它,但默认情况下无法确定数据包是否来自用户......
      • 来自 Kaazing 的站点 [websocket.org/aboutwebsocket.html,我认为 websockets 通过提供 HTTP 隧道从不关心(一旦实现)代理服务器。但我仍然想知道这是否只发生在 ws 或 wss(secure) 上?
      • 好吧,显然这取决于代理服务器的行为,因为在透明代理的情况下,客户端不会使用HTTP CONNECT 来设置持久隧道。你的大部分问题都在我提供的第一篇文章中得到了回答,我不想解释,因为坦率地说,现在我自己觉得有点困惑......
      猜你喜欢
      • 2015-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-29
      • 2019-12-19
      • 2014-01-11
      • 1970-01-01
      • 2020-07-10
      相关资源
      最近更新 更多