正向代理,反向代理,路由(转)

c# yarp的API网关

最近研究Web Api,接触到路由的概念,因为有些时候总是把路由和代理的概念搞混,所以特地去查了一下代理的相关知识点,简单总结如下。

 

正向代理

大多数人最早接触到“代理”这个概念,一般是正向代理。

比如你所在的公司只能访问局域网,如果想访问外网,需要设置一个代理;比如我们想访问Google这样的网站,一般无法直接访问,也需要一个代理。

此时,“我”和“代理”之间可以直接通信,和“目标站点“无法直接通信,需要”代理“访问”目标站点“,把接收到的结果发送给我。

反向代理

其实我们应该都访问过反向代理,只是自己不知道而已。比如我们访问某个公司的服务,发送请求到对方服务器。有些情况下这台服务器就是一个”反向代理“,它接受来自网络的请求,然后根据代理规则,转发给内部服务器,并将从服务器上得到的结果返回给网络上的请求方。

为什么要这样做呢?首先是保证内网安全——不直接把内网服务器暴露在公网上;然后还可以通过反向代理服务器优化服务器的负载。

引用一张图来解释二者之间的区别:


 
image.png

通过上面的解释,你会发现其实代理的概念比较简单易懂,只要顺着请求经过的服务器,顺藤摸瓜就能搞清楚。

路由

而路由就很难这么简单的解释。首先路由这个概念就包括许多内容,哪怕仅仅局限在在Web App里,也有前端路由和后端路由的区分,具有不同的实现方式。

我自己的简单理解,就是通过一行URL,如何找到最终访问的内容:比如是一个页面,或者是一个Http接口,等等。它是要找到最终访问的那几行代码的。

区别

综上,我的理解就是,代理是一个更加宏观的概念,而路由(概念缩小到Web App里)则比较微观。如果说的不对也欢迎留言讨论




posted on 2022-06-08 17:14  NLazyo  阅读(203)  评论(0编辑  收藏  举报