正向代理与反向代理

来源:互联网 发布:java 创建线程 sleep 编辑:程序博客网 时间:2024/06/14 17:52
正向代理和反向代理的理解

正向代理与反向代理反应的是代理在行为上和代理主体上的差异。
比如:
存在一个行为,学生A需要从书店中买一本书(这里A是买书行为的发起方,B是行为的承接方)。
假如没有代理的情况是:
A直接去就近的书店B借了一本书,书店B知道书是A买走了。

假如存在代理的其中一种情况1:
A因为没空于是叫同学P1代买书,于是P1也去就近的书店,这时书店B只知道书是P1买走的,并不知道实际买书的是A。

假如存在另外一种情况2:
A要买的书在某些书店里才存在,买一些书可能会要跑多家书店才买的到,这时有专门帮所有书店代理卖书而且价格还优惠的书贩P2,他那里可以买到所有的书但并不会告知是从哪家书店拿的书,于是A直接从代理P2处购买了想要的书。

上面的描述中存在两个代理,其中:
P1为A的代理(发起方的代理),帮A购买书籍,从行为的来说(代理的事情仍然是买书),是一种正向的代理(从发起方到承接方)。
P2则代理了所有的书店(承接方),帮所有的书店卖书,从行为上来说,卖书是与A买书相反的一种行为,则P2的代理是一种反向的代理。
实际买书中可能同时存在情况1和情况2,P1和P2。
那么从买书的行为上来说,P1是正向的代理,P2是反向代理;
但是如果从卖书的行为上来说,P2则是正向的代理,P1则是反向的代理。

所以,判断是正向的代理和反向代理的关键是看代理的行为和主体行为是互为正向还是逆向以及其代理的对象是行为的发起方还是承接方


互联网架构上的正向代理与反向代理



对应在互联网架构上,一般互联网上的交互行为为普通用户请求目标服务器(单个或集群)的服务,用户是服务请求(行为)的发起方,服务器为服务请求的承接方。
则反向代理服务器为专门为服务器或者服务群做代理服务的服务器,替服务器接受用户的请求,对外提供服务(与用户请求服务这一行为相反)。
正向代理服务器则为代理用户发起请求的服务器,比如某网站为域外某不可直接访问网站,科学上网的时候用户需要使用的代理服务器。

负载均衡和CDN与反向代理的关系

流行的负载均衡与CDN技术都是反向代理的一些具体业务实现,前者使得服务器端可以拥有更强大的处理能力,后者为了提高用户加载资源的速度。


原创粉丝点击