理解正向代理与反向代理的区别
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
我們介紹了Nginx主要用來做反向代理,可能有些朋友并不很清楚什么是反向代理,本篇文章會介紹下反向代理和正向代理的不同之處:
(一)正向代理
正向代理是一個位于客戶端和目標(biāo)服務(wù)器之間的代理服務(wù)器(中間服務(wù)器)。為了從原始服務(wù)器取得內(nèi)容,客戶端向代理服務(wù)器發(fā)送一個請求,并且指定目標(biāo)服務(wù)器,之后代理向目標(biāo)服務(wù)器轉(zhuǎn)交并且將獲得的內(nèi)容返回給客戶端。正向代理的情況下客戶端必須要進(jìn)行一些特別的設(shè)置才能使用。
圖示如下:
舉個例子:
小說里面有一些殺手組織,有錢人可以雇傭殺手幫其辦事,這里面的殺手就相當(dāng)于是一個正向代理。
通常在下面的情況下會用正向代理:
(1)希望隱藏客戶端身份 (目標(biāo)者不知道幕后操縱著是誰)
(2)客戶端無法訪問某些服務(wù)器,需要通過一些代理層間接訪問(操縱著有錢,但是武功沒有目標(biāo)者高)
(二)反向代理
反向代理正好相反。對于客戶端來說,反向代理就好像目標(biāo)服務(wù)器。并且客戶端不需要進(jìn)行任何設(shè)置。客戶端向反向代理發(fā)送請求,接著反向代理判斷請求走向何處,并將請求轉(zhuǎn)交給客戶端,使得這些內(nèi)容就好似他自己一樣,一次客戶端并不會感知到反向代理后面的服務(wù),也因此不需要客戶端做任何設(shè)置,只需要把反向代理服務(wù)器當(dāng)成真正的服務(wù)器就好了。
圖示如下:
舉個例子:
比如去醫(yī)院買藥,我們只說出藥的名字,然后由售貨員去指定分類的地方把藥拿回來再給我們,從頭到尾我們不知道這個藥到底放在哪個區(qū)域,而這里面售貨員的角色就類似一個反向代理。
通常在下面的情況下會用反向代理:
(1)保護(hù)和隱藏原始資源服務(wù)器 (不知道藥的位置)
(2)負(fù)載均衡 (買藥的人太多了,多增加幾個售貨員來負(fù)載均衡,避免一個人忙不過來)
(三)其他
透明代理:
比較類似正向代理的功能,差別在于客戶端根本不知道代理的存在,它改編你的request,并會傳送真實(shí)IP(使用場景就是公司限制網(wǎng)絡(luò)的訪問)。
比如為了工作效率或者安全,A公司屏蔽了QQ軟件的使用。A公司的員工接上了網(wǎng)絡(luò),但發(fā)現(xiàn)無法使用qq。這就是透明代理搗的鬼。公司在內(nèi)網(wǎng)和外網(wǎng)的中間插入一個透明代理,這個代理會根據(jù)規(guī)則抓取請求內(nèi)容,遇到qq的請求我就把這個請求給屏蔽掉,這樣就完成了透明屏蔽。當(dāng)然了,如果你明白原理,就可以自己搞個正向代理來繞過公司的屏蔽。
參考文章:
http://github.thinkingbar.com/reverseProxy/
http://blog.51cto.com/z00w00/1031287
轉(zhuǎn)載于:https://my.oschina.net/u/1027043/blog/1592859
總結(jié)
以上是生活随笔為你收集整理的理解正向代理与反向代理的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 12月20日学习内容整理:博客系统之me
- 下一篇: 用系统滚动条实现NumericUpDow