代理和反向代理
和小伙伴们闲聊,代理forward proxy和反向代理reverse proxy。
最早的时候,就只有proxy的概念,但是自从反向代理reverse proxy的概念出现后,原来的proxy就修订为forward proxy。一般情况下,如果只说代理proxy,指的还是forward proxy。
下面来聊聊他们之间的差别。
以借钱为案例比喻
假设我是某个童话王国的商人,做生意需要更多资金,但是对贷款业务不熟悉,于是找个中间人帮忙跑腿。去a银行借点,b富豪借点。
这个人,我们先称为代理。
然后,在去找c银行的时候,行长说:由于风控(国家政策经济形势……以下节省十分钟演讲……),现在我们对小额贷款收缩了,办不了你这个。你要借钱,我介绍一个朋友给你认识吧,他有路子。
懂事的你自然明白:这个人实际上也是从这个银行借钱出来,再借钱给你。
但是银行不直接跟你玩,他指定了这个人做他的代理人,你只能跟这个人玩。
这个人就是银行的代理,我们暂时称他为反向代理。
从这个故事来解析
- 发起者,使用中介,到达目的地,这个就是
正向代理 forward proxy - 目的地,把自己隐藏起来,让别人只能通过那个中介找到他,这个就是
反向代理 reverse proxy
反向代理的第一特征
对于发起者来说,这个中介是不是完全“代表”了目的地,把目的地隐藏起来了,是关键差别一。
举例来说:
童话故事里因为贷款太麻烦,存款利息又低,银行态度还特别拽,爱存不存。
然后民间出了个公司,可以存款+借贷。对于大家来说,存款利息高了,贷款利息低了,手续还特别方便。众人皆大欢喜。
突然天降灵符,说这个不安全,上天有好生之德,我要管理这个,不允许你们这样做,我要保护大家。
于是大家又只能回去接受银行的盘剥和刁难。
这个管理灵符,他隐藏并代表了被管理对象,因此是reverse proxy 。
当然灵符还会宣传:自己代表了上天的意志,代表了历史的选择,也代表了人命的利益。
反向代理的第二特征
他可能会修改请求和答复
还是以童话王国的借钱为例,如果是我们找到的代理,他一般要手续费。
但是如果是反向代理,很可能就变成这样了:
- 借款人要接100w;
- 反向代理找银行拿120w,到期还款130w;
- 反向代理告诉借款人利息15w,信息服务费15w,要还130w——各种名目收钱,但合同字面的利息可能就只有15%;
- 反向代理人还说:还有中间人好处费20w——这个是借款人自愿送给他的,所以更不是利息了;
- 最后贷款人拿到80w,但是要还130w。
反向代理俩头都骗,对客户端冒充服务器端,对服务器端冒充客户端。
童话王国里面的普通老百姓搞不明白一个道理:
为什么银行贷款利息那么低,但是做生意的要去借高利贷?
用IT案例来说
- 由于某个不能说的秘密,大家不能访问不了技术网站,通过
代理来访问,这个是forward proxy。 - 公司为了方面大家看技术网站,搭了一个代理服务器,80端口指向stackoverflow,81端口指向github,这个就是
reverse proxy - 手机调试,走charless,不仅可以看见请求和答复,还可以修改,这个是
reverse proxy。
留下评论