我在网上搜索了一些关于http-proxy的信息.我读了关于代理服务器的wiki文章.但我仍然不明白http代理是如何工作的,愚蠢的我.
以下是关于http代理如何工作的假设:如果我将http代理设置为特定的代理,比如Proxy_A,那么当我启动chrome/IE时,输入特定的URL,比如URL_A,chrome/IE是否发送请求直接到Proxy_A,然后Proxy_A将请求发送到URL_A的真实服务器?
Joh*_*ohn 76
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
Run Code Online (Sandbox Code Playgroud)
更新:
与使用代理作为安全/隐私功能相关
如上面的ascii所示,CLIENT和SERVER之间没有直接通信.双方只是在他们之间与PROXY交谈.
在现代世界中,CLIENT通常是浏览器,而SERVER通常是Web服务器(例如Apache).
在这样的环境中,用户通常相信PROXY是安全的,不会泄露他们的身份.
但是,由于浏览器上运行的复杂软件框架,有许多可能的方法破坏了这种安全模型.
例如,Flash或Java applet是一个完美的例子,代理连接如何被破坏,Flash和Java都可能不关心其父应用程序(浏览器)的代理设置.
另一个例子是DNS请求,它可以在没有PROXY的情况下到达目标名称服务器,具体取决于PROXY和应用程序设置.
另一个例子是cookie或你的浏览器元占用空间(resollution,响应时间,用户代理等),如果网络服务器已经从过去认识你(或者在没有代理的情况下再次遇到你),它们可能都会识别你.
最后,代理本身需要被信任,因为它可以读取通过它的所有数据,最重要的是它甚至可以破坏你的SSL安全性(在中间阅读man)
从
Proxies 获取代理的位置可以作为服务购买,扫描或仅由您自己运行.
公共代理
这些是最常用的代理,通常的术语"公共"是相当误导的.
更好的术语是"开放代理".如果您运行没有防火墙或身份验证的代理服务器,世界上任何人都可以找到并滥用它.
大多数销售代理商的公司只是扫描互联网上的代理商,或者他们使用被黑客入侵的Windows计算机(僵尸网络)并将其出售用于非法/垃圾邮件活动.
大多数现代国家可以看到未经授权使用开放代理作为滥用,这是一种非常普遍的事情,但实际上可能导致监狱时间.
可以通过在互联网上搜索开放端口来扫描代理,典型的免费程序将是https://nmap.org
.请注意:更大规模的扫描几乎肯定会让您的ISP禁止您的互联网连接.
付费代理
在这里,我们有4种类型的代理:
1)付费公共(开放)代理
基本上这些卖家出售或转售巨大的代理列表,定期刷新以删除死亡代理.
代理被大规模滥用,并且通常被列入黑名单的大多数网站,包括谷歌.
另外这些代理通常非常不稳定且非常慢.
绝大多数这些代理只是滥用错误配置的服务器.这是一个非常有竞争力的"市场",谷歌将引领很多例子.
2)付费黑客(僵尸网络)代理
这些滥用计算机,主要是物联网或Windows桌面作为代理主机.攻击者大规模使用它们用于各种非法目的.
卖家通常称他们为"住宅代理人"以隐藏他们的非法性质.
使用这样的代理无疑是非法的,如果你连接到它,被滥用的用户可以轻松地记录"你的"IP,包括劫持你到目的地的连接的可能性.
根据来源,这些IP不会被列入黑名单,因此"质量"比公共代理要好得多.
3)付费共享代理
这些是数据中心代理,通常是合法的,具有快速上行链路的潜在代理.
由于存在大量电子商务垃圾邮件,因此这些IP被大量滥用并且通常在黑名单中发现.
典型的用途是规避craigslist限制或地理限制.
4)付费私人/专用代理
"私人"意味着专用.如果运营商是专业的,则意味着您的代理不会与其他人共享.
这些通常用于更专业和法律活动,特别是当代理IP租用更长时间时.
众所周知的运营商是https://us-proxies.com
自己的代理
运行自己的代理是可能的,也有各种可用的开源项目.
最常用的代理服务器是https://squid-cache.org
tri*_*rik 17
为了增加John上面的答案,一个重要的步骤是PROXY和CLIENT之间的初始CONNECT握手.来自Websocket RFC
CONNECT example.com:80 HTTP/1.1
Host: example.com
Run Code Online (Sandbox Code Playgroud)
这与CLIENT用于打开SSL隧道的请求相同,SSL隧道主要使用代理
归档时间: |
|
查看次数: |
68594 次 |
最近记录: |