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

c# yarp的API網關

最近研究Web Api,接觸到路由的概念,因爲有些時候總是把路由和代理的概念搞混,所以特地去查了一下代理的相關知識點,簡單總結如下。

 

正向代理

大多數人最早接觸到“代理”這個概念,一般是正向代理。

比如你所在的公司只能訪問局域網,如果想訪問外網,需要設置一個代理;比如我們想訪問Google這樣的網站,一般無法直接訪問,也需要一個代理。

此時,“我”和“代理”之間可以直接通信,和“目標站點“無法直接通信,需要”代理“訪問”目標站點“,把接收到的結果發送給我。

反向代理

其實我們應該都訪問過反向代理,只是自己不知道而已。比如我們訪問某個公司的服務,發送請求到對方服務器。有些情況下這臺服務器就是一個”反向代理“,它接受來自網絡的請求,然後根據代理規則,轉發給內部服務器,並將從服務器上得到的結果返回給網絡上的請求方。

爲什麼要這樣做呢?首先是保證內網安全——不直接把內網服務器暴露在公網上;然後還可以通過反向代理服務器優化服務器的負載。

引用一張圖來解釋二者之間的區別:


 
image.png

通過上面的解釋,你會發現其實代理的概念比較簡單易懂,只要順着請求經過的服務器,順藤摸瓜就能搞清楚。

路由

而路由就很難這麼簡單的解釋。首先路由這個概念就包括許多內容,哪怕僅僅侷限在在Web App裏,也有前端路由和後端路由的區分,具有不同的實現方式。

我自己的簡單理解,就是通過一行URL,如何找到最終訪問的內容:比如是一個頁面,或者是一個Http接口,等等。它是要找到最終訪問的那幾行代碼的。

區別

綜上,我的理解就是,代理是一個更加宏觀的概念,而路由(概念縮小到Web App裏)則比較微觀。如果說的不對也歡迎留言討論




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章