正向代理(forward proxy):是一個位於客戶端和目標服務器之間的服務器(代理服務器),爲了從目標服務器取得內容,客戶端向代理服務器發送一個請求並指定目標,而後代理服務器向目標服務器轉交請求並將得到的內容返回給客戶端。後端
有時候,用戶想要訪問某國外網站,該網站沒法在國內直接訪問,可是咱們能夠訪問到一個代理服務器,這個代理服務器能夠訪問到這個國外網站。所以,用戶對該國外網站的訪問就須要經過代理服務器來轉發請求,而且該代理服務器也會將請求的相應再返回給用戶。這個上網的過程就是用到了正向代理。
緩存
這個過程其實和租房子很像。租房子時,通常狀況下咱們很難聯繫到房東,由於有些房東爲了圖方便,可能會將本身的房屋信息和鑰匙交給中介。而房客想要租房子的話只能經過中介才能聯繫到房東。而對於房東來講,他可能根本不知道真正想租他房子的人是誰,他只知道是中介在聯繫他。安全
這裏面一共有三個角色,租客(用戶)、中介(代理服務器)和房東(國外網站,目標服務器)。引入中介(代理服務器)的緣由是用戶沒法聯繫上房東(用戶沒法訪問國外網站)。服務器
因此,正向代理實際上是「代理服務器」代理了「客戶端」,去和「目標服務器「進行交互。網絡
經過正向代理服務器訪問目標服務器,目標服務器是不知道真正的客戶端是誰,甚至不知道訪問本身的是一個代理(有時候中介也可直接冒充租客)。負載均衡
經過代理服務器,能夠突破自身IP訪問限制。訪問國外網站等。網站
即,租客能夠經過中介,來解決沒法聯繫上房東的問題。加密
一般代理服務器都設置一個較大的硬盤緩衝區,會將部分請求的響應保存到緩衝區中,當其餘用戶再訪問相同信息時,則直接由緩衝區中取出信息,傳給用戶,以提升訪問速度。代理
即,中介手裏留存了不少房源信息和鑰匙,能夠直接帶租客去看房。ip
上網者也能夠經過這種方式隱藏本身的IP,免受攻擊。
即,房東並不知道租客的真實身份。PS:可是中介知道了,可能騷擾更多。
反向代理(reverse proxy):是指以代理服務器來接受internet上的鏈接請求,而後將請求轉發給內部網絡上的服務器,並將從服務器上獲得的結果返回給internet上請求鏈接的客戶端,此時代理服務器對外就表現爲一個反向代理服務器。
咱們在租房子的過程當中,除了有些房源須要經過中介之外,還有一些是能夠直接經過房東來租的。用戶直接找到房東租房的這種狀況就是咱們不使用代理直接訪問國內的網站的狀況。
還有一種狀況,就是咱們覺得咱們接觸的是房東,其實有時候也有可能並不是房主本人,有多是他的親戚、朋友,甚至是二房東。可是咱們並不知道和咱們溝通的並非真正的房東。這種幫助真正的房主租客的二房東其實就是反向代理服務器。這個過程就是反向代理。
對於經常使用的場景,就是咱們在Web開發中用到的負載均衡服務器(二房東),客戶端(租客)發送請求到負載均衡服務器(二房東)上,負載均衡服務器(二房東)再把請求轉發給一臺真正的服務器(房東)來執行,再把執行結果返回給客戶端(租客)。
因此,反向代理,其實就是「代理服務器」代理了「目標服務器」,去和「客戶端」進行交互。
經過反向代理服務器訪問服務器時。客戶端是不知道真正的目標服務器是誰的,甚至不知道本身訪問的是一個代理。
使用反向代理,能夠對客戶隱藏服務器的IP地址。
即,租客並不知道房東的真實身份。
反向代理服務器能夠作負載均衡,根據全部真實服務器的負載狀況,將客戶端請求分發到不一樣的真實服務器上。
即,二房東發現房主本人很忙,因而找到房主的妻子幫忙處理租房適宜。
反向代理服務器能夠對於靜態內容及短期內有大量訪問請求的動態內容提供緩存服務器,提升訪問速度。
即,二房東一樣有房屋信息和鑰匙。
反向代理服務器能夠做爲應用層防火牆,爲位置提供對基於Web的攻擊行爲(例如Dos/DDoS)的防禦,更容易排查惡意軟件等。還能夠爲後端服務器統一提供加密和SSL加速(如SSL終端代理),提供HTTP訪問認證等。
即,二房東能夠有效的保護房東的安全。
雖然正向代理服務器和反向代理服務器所處的位置都是位於客戶端和真實服務器之間,所作的事情也都是把客戶端的請求轉發給服務器,再把服務器的響應轉發給客戶端,可是兩者之間仍是有必定的差別的。