正向代理和反向代理详解

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/chest_/article/details/101012375

引言~

最近由于需要用代理服务器来搭建实验环境,所以顺手写篇博客记录一下



正文开始~


代理,通俗的来说,它就是相当于一个中间人这么个概念,先别把它想做什么代理服务器,想的那么复杂容易把自己搞懵,你只需要知道它是作为中间人来帮助我们转发流量上网这么一回事就行了


献上我的灵魂图解
在这里插入图片描述

通过图解不难看出这两者的区别:

正向代理:
正代理作为客户端的代理,将从互联网上获取的资源返回给一个或多个的客户端,当服务端(如Web服务器)返回资源请求给客户端的时候只知道代理服务器的IP地址而不知道客户端的IP地址

反向代理
反向代理服务器根据客户端的请求,从其关联的一组或多组的后端服务器(如Web服务器)上获取资源,然后再将这些资源返回给客户端,这时候客户端只会得知反向代理服务器的IP地址,而不知道回馈代理服务器所请求资源的后面真正服务器ip的存在



看到这里你可能会有点懵了,这样吧,我举个小栗子来讲

先脑补一下具体的登场人物吧
1.妹妹 – 客户端
2.哥哥 – 代理服务器

正向代理~

有一天,可爱的妹妹(客户端) 想吃零食了,但是身为一个肥宅怎么可能自己出去买吃的呢?(没权限)于是,妹妹便百般无赖的缠着你去帮她买吃的,最终耐于妹妹的可爱,你(代理服务器) 答应了妹妹(客户端) 的请求,乖乖的跑到楼下超市(服务端) 去买妹妹喜欢的零食(请求资源),然后超市(服务端)你(代理服务器) 需要的零食(请求资源) 转交给你,这时候超市(服务端) 根本就不知道请求的源头是妹妹 (客户端),只会认为是你在请求资源,紧接着再由你(代理服务器) 送到妹妹(客户端) 手里,从而完成了一次正向代理的请求


正向代理服务器的工作流程大致的如下:

1、客户端发送资源请求到自己的代理服务器 
2、接着自己的代理服务器把请求的资源发送到服务器 
3、然后服务器返回请求的资源数据到自己的代理服务器 
4、最后自己的代理服务器再将数据返回给客户端 


反向代理~
还是拿上面的栗子来比喻

这一天,可爱的妹妹(客户端) 不想吃零食了,她突然想吃水果,但是一如往日,她还是懒得出门,于是,你(代理服务器) 又被妹妹征服了,爽快的答应了妹妹(客户端) 的请求,然后乖乖的跑到楼下超市(服务端) 去买妹妹要的吃的水果(请求资源),但到了楼下超市的时候询问店员却发现店里并没有妹妹(客户端) 需要的水果(请求资源),这时候服务员(另一个代理服务器) 收到这个我(代理服务器) 请求发现但是却发现店里没有我(代理服务器) 需要的资源,可是又需要挣钱,这怎么办呢?服务员这么一想,隔壁那家水果店有啊,而我也和那家水果店(另一个服务端) 有交集,那我去让另一家水果店把你需要的水果送过来不就好了吗?于是服务员就去告诉隔壁家的水果店(另一个服务端) 说你买我几个水果(资源请求) 吧,隔壁水果店说好呀,可以,然后就把水果(请求资源) 交给服务员。那么这个时候,这个服务员(代理服务器) 就成为了反向代理,因为他去调用别的服务端。这个时候我们(客户端)通常来说是没必要知道这水果(资源请求) 是怎么来的,只要资源到手就好。然后服务员(另一个代理服务器)你(代理服务器) 需要的水果(请求资源) 转交给你,接着再由你(代理服务器) 送到妹妹(客户端) 手里,从而完成了一次反向代理的请求

正向代理服务器的工作流程大致的如下:

1、用户发送资源请求到代理服务器 ,接着代理服务器发送请求到反向代理服务器处理
(这时候用户访问的其实是反向代理服务器,只是用户不知道)
2、反向代理服务器发送请求到真正的服务器 
3、真正的服务器将数据返回给反向代理服务器 
4、反向代理服务器再将数据返回给用户

到这一步,我们不难得出正向代理与反向代理最简单的区别:
正向代理其实就是用户主动使用代理,这个代理对用户来说是透明的,对用户来说,这个代理属于正向。反正代理是与正向代理相反,这个代理是用户不知道的,都是在服务器端自己做的处理,这个代理对用户来说,是反向的。重点区分是要看这个代理是在用户端还是在服务端。

总的来说就是:正向代理隐藏的是用户,反向代理隐藏的是服务器

猜你喜欢

转载自blog.csdn.net/chest_/article/details/101012375