最近研究Web App,接觸到路由的概念,因?yàn)橛行r(shí)候總是把路由和代理的概念搞混,所以特地去查了一下代理的相關(guān)知識(shí)點(diǎn),簡(jiǎn)單總結(jié)如下。
正向代理
大多數(shù)人最早接觸到“代理”這個(gè)概念,一般是正向代理。
比如你所在的公司只能訪問局域網(wǎng),如果想訪問外網(wǎng),需要設(shè)置一個(gè)代理;比如我們想訪問Google這樣的網(wǎng)站,一般無法直接訪問,也需要一個(gè)代理。
此時(shí),“我”和“代理”之間可以直接通信,和“目標(biāo)站點(diǎn)“無法直接通信,需要”代理“訪問”目標(biāo)站點(diǎn)“,把接收到的結(jié)果發(fā)送給我。
反向代理
其實(shí)我們應(yīng)該都訪問過反向代理,只是自己不知道而已。比如我們?cè)L問某個(gè)公司的服務(wù),發(fā)送請(qǐng)求到對(duì)方服務(wù)器。有些情況下這臺(tái)服務(wù)器就是一個(gè)”反向代理“,它接受來自網(wǎng)絡(luò)的請(qǐng)求,然后根據(jù)代理規(guī)則,轉(zhuǎn)發(fā)給內(nèi)部服務(wù)器,并將從服務(wù)器上得到的結(jié)果返回給網(wǎng)絡(luò)上的請(qǐng)求方。
為什么要這樣做呢?首先是保證內(nèi)網(wǎng)安全——不直接把內(nèi)網(wǎng)服務(wù)器暴露在公網(wǎng)上;然后還可以通過反向代理服務(wù)器優(yōu)化服務(wù)器的負(fù)載。
引用一張圖來解釋二者之間的區(qū)別:

通過上面的解釋,你會(huì)發(fā)現(xiàn)其實(shí)代理的概念比較簡(jiǎn)單易懂,只要順著請(qǐng)求經(jīng)過的服務(wù)器,順藤摸瓜就能搞清楚。
路由
而路由就很難這么簡(jiǎn)單的解釋。首先路由這個(gè)概念就包括許多內(nèi)容,哪怕僅僅局限在在Web App里,也有前端路由和后端路由的區(qū)分,具有不同的實(shí)現(xiàn)方式。
我自己的簡(jiǎn)單理解,就是通過一行URL,如何找到最終訪問的內(nèi)容:比如是一個(gè)頁面,或者是一個(gè)Http接口,等等。它是要找到最終訪問的那幾行代碼的。
區(qū)別
綜上,我的理解就是,代理是一個(gè)更加宏觀的概念,而路由(概念縮小到Web App里)則比較微觀。如果說的不對(duì)也歡迎留言討論。