据我了解,SOCKS 代理仅在 TCP 级别建立连接,而 HTTP 代理则在 HTTP 级别解释流量。因此,SOCKS 代理可以适用于任何类型的协议,而 HTTP 代理只能处理 HTTP 流量。但是为什么像 Squid 这样的 HTTP Proxy 可以支持 IRC、FTP 等协议呢?当我们使用 HTTP 代理进行 IRC 或 FTP 连接时,具体会发生什么?通过 HTTP 协议发送到代理时,包中是否添加了任何元数据?
HTTP 代理如果支持 CONNECT 方法,就能够支持除 HTTP 之外的高级协议,该方法主要用于 HTTPS 连接,以下是 Squid wiki 的描述:
CONNECT 方法是一种通过 HTTP 代理建立任何类型连接的隧道的方法。默认情况下,代理建立到指定服务器的 TCP 连接,以 HTTP 200(连接已建立)响应进行响应,然后在客户端和服务器之间来回传输数据包,而不理解或解释隧道流量
如果客户端软件支持通过启用“HTTP CONNECT”(HTTPS)代理的连接,则它可以是可以与此类代理一起使用的任何高级协议(VPN、SSH、SQL、版本控制等)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)