关于正向代理与反向代理的理解
源起:
今天在地铁上看到一篇文章标题一分钟理解反向代理,搞网站开发这么久,这个东西也搞了很多次,这个时候就问自己什么是反向代理。竟然一时没办法用简洁明了一针见血的语句来概括。其实知识就像魔术你懂了就很简单,不懂觉得很神奇。有时候有些概念技术要掰碎了理清了才会变成自己的,这里告诫自己以后的文章尽量别搞些假大空或者裹脚布一样的又臭又长。尽量简洁明了
概要:
首先什么是代理,通俗地讲就是中间商 ,中介,举个例子房屋中介就是代理,
关于正向和反向 这个概念就是正和反是是可以互逆的。这个点是大多数文章中没提到但是我觉得值得说一说的,例如:ABC三个角色,B是代理,假如B是A的正向代理,那么BA相对于C来说B是A的反向代理。
正文
在互联网中的代理Proxy基本是客户端Client和对应线上服务Server
Client<->Proxy<->Server
但是为什么会有正向和反向之说呢,关键点在于Proxy在哪一边 或者说是哪一边主动的。
最常见的例子就是架梯子
因为墙的原因如果你想访问墙外的服务那么就需要通过代理访问,对于服务来说客户端是不可见的
Client<->Proxy<————–>Server
那么Proxy这个时候就是正向代理
但是假如Proxy在Server端是Server主动搞的,那么我们通俗的讲 这个Proxy是反向代理。
Client<————–>Proxy<->Server
这里引用:https://www.cnblogs.com/taostaryu/p/10547132.html 的图片。便于理解
正向代理:帮左边干活
反向代理:帮右边干活
其他两个参考:
小结反思:
1:首先正向反向 就看是给谁干活。给左边干活那就是正向,给右边干活那就是反向
2:还有就是现在的很多情况是正相反相同时存在 Client<->Proxy<————–>Proxy<->Server
3:正向和反向相对于双方来说是互逆的(这个理解可能不是太合理,但是我觉得有点意思值得思考),一般情况下请求都是客户端发起的,所以一般正向反向都是相对于客户端来说的,但是服务端在某些情况下也会主动发起请求,那么原来的正向代理相对于服务端其实也可以理解成反向代理。