秒懂正向代理和反向代理

先同步2个基础知识:

网络访问过程:客户端对服务器发起请求,然后服务器响应返回数据给客户端。

代理:即中间商,参与客户端A与服务器B的访问过程,接收客户端A的请求然后转发给服务器B。

可以简单记忆:

正向代理就是客户端代理,代理客户端发送请求;

反向代理就是服务器代理,代理服务器响应数据。

正向代理

我们都知道黑帮故事,黑帮老大和交易方做交易的时候,往往不会亲自上场,会派一个小弟和交易方正面交易,黑帮老大隐藏自己身份交易的过程就是正向代理。

客户端A隐藏真实身份,代理客户端A做发起请求的过程,即正向代理。

例如流程,客户端A想要访问服务器B,由于防火墙拦截原因无法访问,这时候,A可以配置代理服务器C的地址、账号、密码进行代理访问,然后客户端A就能通过代理服务器C将请求转发给服务器B,服务器B接收到请求后,将数据返回给代理C,代理C再将数据返回给A。

我们可以看到,对于服务器B来说,它只知道对它发起请求的是代理C,无法知道客户端A的身份,能够很好的保护客户端A安全。换个视角想,在网络攻击中,攻击者常常喜欢用代理转发的攻击方式,因为这样能隐藏攻击者真实的身份。

了解更多正向代理使用场景:

1、资源无法被访问。例如防火墙策略配置原因、路由器配置原因、客户端被服务器封堵;

2、加速访问资源。

3、过滤内容(可以通过代理服务器统一过滤一些危险的指令/统一加密一些内容、防御代理服务器两端的一些攻击性行为)

反向代理

还是上面那个黑帮故事,交易方也是某个集团组织,他们的老大也不会亲自上场,派了一个小弟来做交易,这时候如果黑帮老大和交易方小弟做交易,交易方隐藏自己身份的交易过程就是反向代理。

服务器B隐藏真实身份,找代理服务器做响应数据的过程,即反向代理。

例如流程,客户端A请求互联网上的某个资源B,服务器B把请求转发到真实服务C上,真实服务器C响应返回数据,服务器B收到返回数据后再转发给客户端A。

我们可以看到,对于客户端A来说,只知道资源服务器B的IP地址,不知道代理服务器B后面的真实业务服务器C,这能够很好的保护真实服务器C的安全。

了解更多反向代理使用场景:

1、提升服务器安全性,服务器统一访问控制;

2、服务器提缓存服务,对于频繁访问资源做缓存;

3、负载均衡,对大量客户端的请求做分发处理,将负载分发到不同服务器上,减轻服务器处理性能,提高服务器稳定性