我知道socks代理是一个代理,它只是将流量中继到dst ip:port 以及支持CONNECT请求的HTTP代理,它也只是将流量中继到http请求头中的dest主机 它们的功能是否有任何差异(例如效率)?
答案 0 :(得分:2)
SOCKS和HTTPS代理都使用相应的协议(分别为SOCKS和HTTP)。
这些类型的代理提供几乎相同的功能,区别在于SOCKS代理位于专用端口上,HTTPS代理可以与HTTP代理或甚至与HTTP服务器(或其他混合构造)组合。
HTTPS代理的另一个好处是,某些管理员会阻止SOCKS代理并允许HTTP / HTTPS连接,因此可以使用HTTPS代理绕过NAT /防火墙限制。
另一方面,某些HTTPS代理配置为仅允许连接到远程HTTP和HTTPS主机(即不允许连接到其他协议的自定义端口)。
答案 1 :(得分:1)
"效率"没有区别。建立与目标服务器的下游连接后,它们的行为完全相同。
SOCKS代理基本上是TCP代理。任何TCP连接都可以通过SOCKS代理工作。 HTTP代理代理HTTP请求。只有HTTP会话可以通过HTTP代理。
但是存在一个问题:在HTTPS中,会话是加密的,因此HTTP代理不会允许它。解决方案:允许" HTTP CONNECT"。这基本上使HTTP代理表现为TCP代理。
基本上,您可以将HTTP代理(支持HTTP CONNECT)的功能视为SOCKS代理功能的超集。它确实完成了SOCKS代理所做的事情 - 还有更多。
答案 2 :(得分:1)
它们都是第4层的代理协议,但是...
SOCKS可以处理 TCP和UDP
HTTP CONNECT只能处理 TCP
SOCKS已未加密(注意:身份验证≠加密)
HTTP CONNECT可以使用 TLS
SOCKS是专用服务
可以在常规HTTP服务中隐藏 HTTP CONNECT