標籤:部分 else out lin 問題 ip地址 檔案中 squid 儲存空間
HTTP協議 (五) 代理
什麼是Proxy 伺服器
Web代理(proxy)伺服器是網路的中間實體。 代理位於Web用戶端和Web伺服器之間,扮演“中間人”的角色。
HTTP的Proxy 伺服器即是Web伺服器又是Web用戶端。
Fiddler就是個典型的代理
Fiddler 是以代理web伺服器的形式工作的,它使用Proxy 位址:127.0.0.1, 連接埠:8888. 當Fiddler退出的時候它會自動登出代理,這樣就不會影響別的程式。
代理的作用一, FQ
很多人都喜歡用Facebook, 看youTube。但是我們在天朝,天朝有The Great of Wall(長城防火牆),屏蔽了這些好網站。 怎麼辦? 通過代理來跳牆,就可以訪問了。
自己去尋找Proxy 伺服器很麻煩, 一般都是用FQ軟體來自動探索Proxy 伺服器的。
代理的作用二, 匿名訪問
經常聽新聞,說”某某某“在網路上發布文章,被跨省追緝了。 假如他使用匿名的Proxy 伺服器,就不容易暴露自己的身份了。
httpProxy 伺服器的匿名性是指: HTTPProxy 伺服器通過刪除HTTP報文中的身份特性(比如用戶端的IP地址, 或cookie,或URI的會話ID), 從而對遠端伺服器隱藏原始使用者的IP地址以及其他細節。 同時HTTPProxy 伺服器上也不會記錄原始使用者訪問記錄的log(否則也會被查到)。
代理的作用三, 通過代理上網
比如區域網路不能上網, 只能通過區域網路內的一台Proxy 伺服器上網。
代理的作用四, 通過代理緩衝,加快上網速度
大部分Proxy 伺服器都具有緩衝的功能,就好像一個大的cache, 它有很大的儲存空間,它不斷將新取得資料存放區到它本地的儲存空間上, 如果瀏覽器所請求的資料在它原生儲存空間上已經存在而且是最新的,那麼它就不重新從Web伺服器取資料,而直接將儲存空間上的資料傳給使用者的瀏覽器,這樣就 能顯著提高瀏覽速度。
代理的作用五:兒童過濾器
很多教育機構, 會利用過濾器代理來阻止學生訪問成人內容。
IE代理設定:手動設定代理
IE瀏覽器可以手動設定代理, 很簡單,指定一個IP地址和連接埠就可以了。 如。
工具 -> Internet選項 -> 串連 -> 區域網路設定 (快速鍵)
假如Proxy 伺服器的IP地址改變了,或者連接埠號碼改變了。 難道要幾百個用戶端的瀏覽器去修改瀏覽器設定? Impossable 這太難維護了。 下面還有一種更進階點的方法。
IE代理設定:使用自動設定指令碼(PAC)
手動設定代理很簡單,但是不靈活。 只能指定一個Proxy 伺服器,而且不支援容錯移轉。
在大公司裡一般都使用PAC檔案來配置。只需要指定PAC檔案的URL就可以了,
PAC(Proxy Auto Config)檔案是一個小型的JavaScript程式的文字檔,尾碼為.dat。
當瀏覽器訪問網路的時候,會根據PAC檔案中的JavaScript函數來選擇恰當的Proxy 伺服器。
sample_pac.dat檔案的內容
function FindProxyForURL(url, host) {
if (url.substring(0, 5) == "http:") {
// 應該使用指定的代理
return "PROXY proxy:80";
}
else if (url.substring(0, 4) == "ftp:") {
return "PROXY fproxy:80";
}
else if (url.substring(0, 7) == "gopher:") {
return "PROXY gproxy";
}
else if (url.substring(0, 6) == "https:") {
return "PROXY secproxy:8080";
}
else {
// 直連,不經過任何代理
return "DIRECT";
}
}
IE代理設定:自動探測設定(WPAD)
瀏覽器只要選中“自動檢測設定”, 就可以使用WPAD協議, WPAD會自動找到PAC檔案的URL。 WPAD會使用一系列的資摘要搜索技術(DHCP,DNS等)去尋找PAC檔案。
代理認證,和407狀態代碼
Proxy 伺服器也可以需要許可權認證, HTTP定義了一種名為代理認證(Proxy authentication)的機制。 這種機制可以阻止對內容的請求。
當瀏覽器訪問需要認證的代理時, Proxy 伺服器會返回407 Authorization Required,告訴瀏覽器輸入使用者名稱和密碼。
代理認證跟HTTP基本認證是一樣的機制, 如需瞭解代理認證的機制,請看[HTTP協議基本認證]
使用Proxy 伺服器的安全問題
Proxy 伺服器和抓包工具(比如Fiddler)都能看到http request中的資料。 如果我們發送的request中有敏感性資料,比如使用者名稱,密碼,信用卡號碼。這些資訊都會被Proxy 伺服器看到。所以非常危險。 所以我們一般都是用HTTPS來加密Http request. 這樣Proxy 伺服器就看不到裡面的資料了。
如何搭建Proxy 伺服器
可以使用CCproxy, 和Squid 來搭建Proxy 伺服器。
HTTP協議 (五) ---代理