自己做的網(wǎng)站主頁打開速度上海百度分公司電話
文章目錄
- 正向代理
- 反向代理
- 區(qū)別與聯(lián)系:
- 總結(jié)
- 代理服務(wù)器實現(xiàn)
- 正向代理
- 反向代理
正向代理
正向代理是客戶端代理,它位于客戶端和目標(biāo)服務(wù)器之間。它的作用是保護客戶端的隱私和安全。
如我們現(xiàn)在想要訪問谷歌,但是由于某些原因,無法直接訪問到谷歌,我們可以通過連接一臺代理服務(wù)器,代理服務(wù)將我們的請求提交到谷歌,然后再將谷歌的響應(yīng)反饋給我們,對于谷歌而言,它只知道有一個請求過來,但是它并不會知道我們是無法直接訪問它的。
反向代理
反向代理是服務(wù)器的代理,它位于目標(biāo)服務(wù)器和客戶端之間。
它的作用是為目標(biāo)服務(wù)器提供服務(wù),例如負(fù)載均衡、緩存加速和安全防護。
舉例: 比如我們訪問百度網(wǎng)站,百度的代理服務(wù)器對外的域名為 https://www.baidu.com 。具體內(nèi)部的服務(wù)器節(jié)點我們不知道?,F(xiàn)實中我們通過訪問百度的代理服務(wù)器后,代理服務(wù)器給我們轉(zhuǎn)發(fā)請求到他們N多的服務(wù)器節(jié)點中的一個給我們進行搜索后將結(jié)果返回,此時,代理服務(wù)器對我們客戶端來說就充當(dāng)了提供響應(yīng)的服務(wù)器,但是對于目標(biāo)服務(wù)器來說,它只是進行了一個請求和轉(zhuǎn)發(fā)的功能。
區(qū)別與聯(lián)系:
正向代理:代理客戶端,服務(wù)端不知道實際發(fā)起請求的客戶端。
反向代理:代理服務(wù)端,客戶端不知道實際提供服務(wù)的服務(wù)端。
正向代理需要對客戶端進行配置,而反向代理對客戶端是透明的,不需要進行任何配置
。
總結(jié)
正向代理和反向代理都是進行請求和轉(zhuǎn)發(fā)的代理方式,但為了區(qū)分,后者被稱為反向代理。
生活中最常見的例子是正向代理類似于賣票的黃牛,而反向代理類似于出租房的二手東
代理服務(wù)器實現(xiàn)
正向代理
按照我們之前介紹的代理原理,我們可以編寫出這樣的代碼:
package mainimport ("fmt""io""net""net/http""strings"
)type Pxy struct {}func (p *Pxy) ServeHTTP(rw http.ResponseWriter, req *http.Request) {fmt.Printf("Received request %s %s %s\n", req.Method, req.Host, req.RemoteAddr)transpo