http代理如何工作?

时间:2011-08-23 01:57:00

标签: http proxy

我在网上搜索了一些关于http-proxy的信息。 我读了关于代理服务器的wiki文章。 但我仍然不明白http代理是如何工作的,愚蠢的我。

以下是关于http代理如何工作的假设: 如果我将http-proxy设置为特定的一个,比如Proxy_A,那么当我启动chrome / IE时,输入一个特定的URL,比如URL_A,chrome / IE是否直接将请求发送给Proxy_A, 然后Proxy_A将请求发送到URL_A的真实服务器?

2 个答案:

答案 0 :(得分:65)

HTTP代理说HTTP协议,它特别针对HTTP连接而且也可以滥用其他协议(这已经是有点标准)

浏览器(CLIENT)将GET http://SERVER/path HTTP/1.1发送到PROXY
现在,PROXY会将实际请求转发给SERVER SERVER只会将PROXY视为连接并回答PROXY,就像客户一样 PROXY收到响应并将其转发回客户端。

这是一个透明的过程,几乎就像直接与服务器通信一样,因此浏览器实现HTTP代理的开销很小。
可以发送一些额外的标头来识别客户端,显示他使用代理 代理有时会出于各种目的更改/添加数据流中的内容 例如,某些代理在一个特殊的HTTP HEADER中包含您的真实IP,它可以在服务器端登录,也可以在其脚本中截获。

CLIENT <---> PROXY <---> SERVER

<强>更新
与使用代理作为安全/隐私功能相关
正如您在上面的ascii中所看到的,CLIENT和SERVER之间没有直接通信。双方只是在他们之间与PROXY交谈 在现代世界中,CLIENT通常是浏览器,而SERVER通常是Web服务器(例如Apache)。

在这样的环境中,用户通常相信PROXY是安全的,不会泄露他们的身份 但是,由于浏览器上运行的复杂软件框架,有许多可能的方法来破坏这种安全模型 例如,Flash或Java applet是代理连接如何被破坏的完美示例,Flash和Java可能都不关心其父应用程序(浏览器)的代理设置。
另一个例子是DNS请求,它们可以在没有PROXY的情况下到达目的地名称服务器,具体取决于PROXY和应用程序设置 另一个例子是cookie或你的浏览器元占用空间(resollution,响应时间,用户代理等),如果网络服务器已经从过去认识你(或者在没有代理的情况下再次遇到你),它们可能都会识别你。

最后,代理本身需要被信任,因为它可以读取通过它的所有数据,并且最重要的是它甚至可能破坏你的SSL安全性(在中间阅读man)

从哪里获取代理
代理可以作为服务购买,扫描或仅由您自己运行。

公共代理
这些是最常用的代理和通常的术语&#34; public&#34;是一种误导 更好的术语是&#34;开放代理&#34;。如果您运行没有防火墙或身份验证的代理服务器,世界上任何人都可以找到并滥用它 大多数销售代理商的公司只是扫描互联网上的代理商,或者他们使用黑客入侵的Windows计算机(僵尸网络)并将其出售用于非法/垃圾邮件活动。 大多数现代国家都可以看到未经授权使用开放代理作为滥用行为,这是非常常见的事情,但实际上可能导致监狱时间。
可以通过在互联网上搜索开放端口来扫描代理,典型的免费程序是https://nmap.org
需要注意的是:更大规模的扫描几乎肯定会让您的ISP禁止您的互联网连接。

付费代理
这里我们有4种类型的代理:
1)付费公开(开放)代理
基本上这些卖家出售或转售巨大的代理商名单,这些代理商经常被刷新以删除死者 这些代理被大规模滥用,并且通常被黑名单列入大多数网站,包括谷歌 另外这些代理通常非常不稳定且非常慢 绝大多数这些代理只是滥用错误配置的服务器。 它是一个非常有竞争力的市场&#34;,谷歌将引领许多例子。

2)付费黑客(僵尸网络)代理
这些是滥用计算机,主要是物联网或Windows桌面作为代理主机。攻击者大规模使用它们用于各种非法目的 卖家通常称他们为#34;住宅代理商&#34;隐藏它们的非法性质。
使用这样的代理无疑是非法的,被滥用的用户可以轻松地记录你的&#34;如果您连接到IP,则包括IP,包括劫持您到目的地的连接的可能性 根据来源,这些IP不会被列入黑名单,因此&#34;质量&#34;比公共代理要好得多。

3)付费共享代理
这些是数据中心代理,通常是合法的,具有快速上行链路的潜力 由于存在大量电子商务垃圾邮件,因此这些IP被大量滥用并且通常在黑名单中找到。
典型的用途是规避craigslist限制或地理限制。

4)付费私人/专用代理
&#34;私人&#34;意味着专注。如果运营商是专业的,则意味着您的代理不会与其他人共享 这些通常用于更专业和法律活动,特别是当代理IP租用更长时间时 众所周知的运营商将是https://us-proxies.com

拥有代理
也可以运行自己的代理,有各种开源项目可供使用 最常用的代理服务器是https://squid-cache.org

答案 1 :(得分:12)

为了增加John上面的重要答案,一个重要的步骤是PROXY和CLIENT之间的初始CONNECT握手。来自Websocket RFC

CONNECT example.com:80 HTTP/1.1
Host: example.com

这与CLIENT用于打开SSL隧道的请求相同,后者主要使用代理