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

Viv*_*vek 5 sockets proxy networking websocket

由于我是互联网/网络领域的初学者,因此在编程时,我总是会烦恼这些疑问;)..我的疑问是,

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

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

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

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

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

cyb*_*ard 0

  1. 是的,差不多是这样。

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

  3. 我本来是这么想的,毕竟所有的数据包都是通过代理传输的,除非你通过 SSL 加密它。

抱歉,我无法向您提供更多信息,但我最近才开始使用 Websocket,而且它仍然不是一种非常普遍的技术。

另外,我会向您指出以下资源,它们似乎为您的问题提供了一些答案:

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