6

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

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

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

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

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

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

4

2 回答 2

2
  1. 正确的。

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

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

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

于 2012-04-16T22:25:55.627 回答
0
  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

于 2012-04-16T11:27:26.447 回答