并非所有代理都是平等创建的。实际上,许多代理在速度,安全性和路由协议方面的有效性水平各不相同,这使它们对于用户而言大不相同。
当今使用的两种主要代理类型是超文本传输协议(HTTP)代理和安全套接字(SOCKS)代理。我将在多个层次上分解这两种方法之间的差异。我将避免使用极端的技术语言(必要时除外),以便初学者可以像熟练的程序员一样理解。
我将在功能,速度,安全性,成本,可用性和实际使用方面进行比较。
在我深入探讨这之前,这里简要说明一下这两种系统均基于HTTP协议的一般功能。
HTTP协议
HTTP协议是Internet的标准代理协议。这是您在每个网址中看到的内容:http://www.example.com。它在我的现代大脑中根深蒂固,以致我在很多方面都看不到它了,当然,除了撰写有关它的文章时。
关于HTTP协议功能的第一件事是,它基于请求-响应场景中的客户端-服务器模型。在大多数情况下,“客户端”是Web浏览器(即,您使用Web浏览器),并且客户端发出信息请求。该信息请求是一个HTTP请求,键入为统一资源定位符(URL)。同时,“服务器”是具有该信息的应用程序或另一台计算机。收到请求后,服务器以HTTP格式将资源(无数内容,例如图像或文本块)发送回客户端。
对于那些挠头的人,上面的过程就是您访问网站时发生的事情。您是客户端,输入http://facebook.com,而Facebook(该公司)在某处拥有一个服务器,该服务器保存着您想要查看的信息。HTTP是发出请求的方法,然后是如何将信息提供给您的方法。
该协议本质上是建立基于Internet和基于Web的浏览的方式。
当您需要此客户端-服务器模型中的另一层时,代理就会起作用。一个人可能想要另一层的匿名性或安全性,或者是因为客户端或服务器设置了防火墙,并且它们彼此之间无法通过。
HTTP代理和SOCKS代理是两种不同类型的层。由于“ HTTP代理”看起来与“ HTTP协议”非常相似,因此有些混乱。虽然两种类型的代理都基于HTTP协议构建,但是它们之间存在一些关键差异。
HTTP代理功能
我将在下面详细介绍,但是HTTP代理功能的主要突出特点是它们是在考虑非常特定的HTTP协议方法的情况下构建的。它们主要用于在该协议内进行获取和接收,而不是其他类型的网络连接。这包括特定的网络端口,通常所有HTTP通信都通过该端口进行路由。
由于这些因素,HTTP代理在这两种类型中更为常见,通常是人们谈论代理使用时的意思。公共代理,私有代理和某些代理服务都使用HTTP代理。
SOCKS代理功能
SOCKS代理在比HTTP代理更“低级”的位置运行。这意味着SOCKS代理更通用,应用更多且“不那么聪明”。从这个意义上讲,“智能”与编程和代理方法有关,它们可以理解传递的信息,这将在安全性部分中讨论。
程序员还使用SOCKS代理,因为与绑定在HTTP协议中的HTTP代理不同,SOCKS可以在任何网络协议和任何端口上工作。
由于SOCKS代理的这种普遍使用的应用,它们更常用于与非特定的HTTP协议相关的事务,并且对于程序员而言,它们具有延展性,而HTTP代理则没有。
安全比较
当大多数人谈论SOCKS和HTTP代理之间的区别时,他们谈论的是两者的安全与否。代理通常专门用于匿名和安全性,因此在很大程度上,这是人们最关心的问题。我将在下面对两者进行比较。
HTTP代理安全
通常,HTTP代理不如SOCKS安全。如果您使用的是精英专用代理,共享专用代理或公共代理(以安全性降序排列),那么这是正确的。
HTTP代理不安全的主要原因?他们很聪明。” 我知道这很奇怪。通常,智能意味着更高的安全性,但是在这个特定的协议链中,事实并非如此。
在查看HTTP协议中客户端和服务器之间传递的实际网络流量或数据时,安全性问题成为焦点。由于这种智能(实际上是一种简单的方式来说明如何在体系结构上设置代理和协议系统),HTTP代理可以理解和解释此流量。
这意味着您(客户端)所请求的数据流可以被您所使用的代理看到。它可能会“看到”你下载的最新一集《权力的游戏》(Game of Thrones),如果没有购买,将是非法拥有。代理并不关心数据是否敏感,但事实是它可以读取数据。
这导致了许多代理供应商丑闻。例如,流行的代理网站HideMyAss记录了一名付费用户的数据,而该用户恰好利用匿名身份帮助获取并窃取索尼的信息。用户的行为是非法的,而HideMyAss有充分的法律权利提供信息。
如果HideMyAss!构建在SOCKS代理平台上,而不是使用HTTP代理,那信息就永远不会被追踪。在这个特殊的例子中,是用户的错。然而,许多用户认为HTTP代理是高度安全的,比如“精英私人代理”,而实际上,拥有这些代理的公司可能正在记录这些数据。
HTTP代理警告
对整个概念的数字警告是,HTTP代理不安全。现在,我们许多人都熟悉HTTPS而不是HTTP,“ S”通常与更安全的网站相关联。在Google Chrome浏览器中,一个小的挂锁图标会出现在以https://开头而不是http://的网站上。这可以通过CONNECT方法来实现,该方法允许HTTP代理在客户端和服务器之间建立安全且直接的连接,也称为隧道。
如果您要购买HTTP代理,请询问提供商是否支持CONNECT方法。如果这样做,则可以从某些连接中获得很高的安全性。如果没有,则存在读取数据的风险。
SOCKS代理安全
您可能会猜到,SOCKS代理比HTTP代理更安全。确实如此的主要原因是,SOCKS无法读取客户端和服务器之间传递的数据。从某种意义上说,它是愚蠢的,这种无知使它对于在客户端和服务器之间传递的任何信息都不明智。
其背后的技术过程与SOCKS代理连接方法有关,该方法称为“ 隧道”。使用HTTP代理,客户端和服务器通过代理本身交换信息,该代理充当两个基于Web的界面之间的中间人。使用SOCKS隧道,客户端向客户端发出直接请求,并在获得明确许可(称为握手)的情况下打开隧道。
这是基于TCP / IP的连接,并且由于其直接性和透明性而非常安全。很明显,何时打开了隧道,很显然,SOCKS代理无法访问隧道中的数据。
SOCKS代理具有两个主要版本:4和5。最新版本SOCKS5增加了对安全性和UDP的更多支持。对于基本用户,任何版本的SOCKS都将很好地工作,并且两者都非常安全。
作为参考,Tor是超匿名和安全的站点,它是基于SOCKS代理技术构建的。
速度比较
当涉及到代理时,人们接下来要关注的是速度。拥有一条往返于您的IP地址的中间路线是降低连接速度的好方法,因此速度始终是一个问题。我将在下面比较HTTP和SOCKS代理速度。
HTTP代理速度
HTTP代理是中间人的定义,因此您一定会遇到速度上的至少一点下降。话虽这么说,HTTP代理在这两种类型中更为常见,所以速度是提供者非常关注的一个问题。
HTTP代理有三种通用类型,每种都有不同的速度:
- 公共代理
这些是在代理服务器列表中找到的免费代理,而且速度非常慢。成千上万的人可能正在尝试使用单个代理,而所有这些数据往往会降低速度。另外,这些代理也不安全,因此不建议使用它们。
- 共享私人代理
并非每个代理提供商都提供此选项,但最受欢迎的提供商之一SquidProxies则需要您为它们付费,并且通常在少数几个客户之间共享它们。通过这种方式,您可以更便宜地访问半私有代理,并且理论上可以使用私有代理的全速运行,该速度徘徊在广告的1000 MB / s左右。但是,您的代理共享伙伴可能是带宽占用者,因此您的速度可能会严重降低。
- 私人代理
当涉及到HTTP代理时,这些都是最重要的东西,并且通常广告速度超过1,000 MB / s。个人通常没有可以处理这些速度的数据连接,这意味着精英私人代理完全不应减慢您的速度。但是,代理就是代理,如果中间人有任何问题,您会注意到速度的变化。
此规则有一个例外,它与HTTP代理缓存有关。一些高端代理可以在您看到内容之前缓存内容,这将使浏览更加流畅。由于此功能,图像,视频和GIF之类的内容实际上可能比没有代理的情况下显示速度更快。
SOCKS代理速度
归根结底,SOCKS代理仍然是代理,并且没有比HTTP代理快或慢的功能。该速度最终将导致您的代理提供商的设置,正如我上面所说,它可能高达1,000 MB / s,或者比它慢得多。
从计算的角度来看,SOCKS代理需要更少的代码来运行。在某些情况下,这可以提高速度,但是大多数人不会注意到这种变化。
当下载或传输大量内容时,SOCKS的代理速度要高得多。由于SOCKS代理的直接通道,可以更快地传输这些内容。因此,它是BitTorrent 的首选代理类型。
价格对比
就像速度一样,这很大程度上取决于您的代理提供商。甚至HTTP代理的费用也可能相差很大,并且那里有大量的提供程序。有些是优秀的和受人尊敬的,有些则不是。寻找代理提供商时进行研究。搜索诸如Black Hat World和Warrior Forum之类的论坛,如果不确定,请与客户支持联系。
一些代理提供程序的软件包中将同时包含HTTP代理和SOCKS代理(通常为SOCKS5)。像TorGuard这样的服务器往往比典型的HTTP代理提供程序贵一些。
您可以通过客户服务或在其网站的“常见问题”部分中查看提供商在购买之前提供的类型。仅提供SOCKS代理的服务很少。通常,服务将同时包括两者。
这使得SOCKS代理要贵一些,因为如果不需要它们,则可以从HTTP代理提供者处购买更便宜的计划。
结论
希望您现在对HTTP和SOCKS代理之间的区别有了更好的了解。就像我之前说的,我竭尽所能不要陷入这些差异所伴随的超级技术语言。
但是,确实存在这些技术资料,您可以在闲暇时搜索上面链接的Wikipedia页面,或在Black Hat World上提出相关问题。
每种代理类型都有其用途,因此在选择一种代理类型时,请考虑将要使用的代理,然后做出决定。