"Socks代理"和支持CONNECT请求的"HTTP代理"有什么区别?

17

我知道socks代理是一种仅将流量中继到目标IP:端口的代理,而支持CONNECT请求的HTTP代理则将流量中继到http请求头中的目标主机。它们的功能有什么区别(例如效率)吗?

4个回答

15
他们都是第四层代理协议,但...
  1. SOCKS可以处理TCP和UDP,而HTTP CONNECT只能处理TCP

  2. SOCKS没有加密(注意:认证≠加密),而HTTP CONNECT可以使用TLS

  3. SOCKS是专用服务,而HTTP CONNECT可以在正常的HTTP服务中隐藏


9

SOCKS代理和HTTPS代理都使用对应的协议(分别是SOCKS和HTTP)。

这些类型的代理几乎提供相同的功能,不同之处在于SOCKS代理位于专用端口上,而HTTPS代理可以与HTTP代理甚至HTTP服务器(或其他混合结构)组合使用。

HTTPS代理的另一个好处是,一些管理员会阻止SOCKS代理,并允许HTTP/HTTPS连接,因此可以使用HTTPS代理绕过NAT/防火墙限制。

另一方面,一些HTTPS代理被配置为仅允许连接到远程HTTP和HTTPS主机(即不允许连接到其他协议的自定义端口)。


5
以下是三个方面的比较:
安全性:SOCKS代理没有标准的隧道加密。HTTP代理可以在客户端和服务器之间添加一层安全保护,并且可以检测和拒绝可疑数据包或间谍软件。
功能:SOCKS代理不直接使用HTTP协议,通常用于更一般的用途,如内容流媒体和P2P文件共享。由于SOCKS代理不受特定网络协议的限制,因此更灵活易于部署,非常适合访问防火墙后面的连接。

由于HTTP代理可以解释网络流量,因此可以设置过滤器或缓存网络数据。它们处理HTTP(S)流量,通常用于通过Web浏览器检索信息,但也可以配置为不同的用例。
性能:SOCKS代理提供快速速度,非常适合通过互联网下载或传输数据。


一些罕见的软件客户端或非常专业的系统可能只支持SOCKS。私人HTTP代理提供良好的负载速度,并更适合管理每秒更多的请求。

3
“效率”方面没有区别。一旦与目标服务器的下游连接建立,它们将完全相同。
SOCKS代理基本上是一个TCP代理。任何TCP连接都可以通过SOCKS代理工作。 HTTP代理代理HTTP请求。只有HTTP会话可以通过HTTP代理进行传输。
但是存在一个问题:在HTTPS中,会话是加密的,因此HTTP代理不允许它。解决方案是:允许“HTTP CONNECT”。这基本上使HTTP代理行为类似于TCP代理。
因此,您可以将支持HTTP CONNECT的HTTP代理的功能视为SOCKS代理功能的超集。它完全执行SOCKS代理所做的操作——并且更多一些。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接