Application Proxy

 快取伺服器優點:
 減少頻寬浪費
 降低網頁伺服器的負擔  使用者可較順暢快速瀏覽網頁
 整合網站過濾加強安全存取管控
缺點
 容易瀏覽到過時資料
 未快取網站不會變快

快取系統討論方向
網頁傳輸方面:
  包括網頁伺服器的效能與特性
  代理快取伺服器的流量特性
  使用者對網頁伺服器的感覺
  網頁瀏覽器的流量特性
  代理伺服器之間的通訊協定
快取內容方面:
  網頁快取內容的一致性
  網頁快取內容的替換方法
  預先取得快取的方法
  與HTTP機制相關的研究
其他議題及法律上的問題:

網路快取進行程序
  1proxy(代理伺服器)維護快取記憶體空間
  2瀏覽器設定快取,會將網頁要求送給proxy
  3proxy有則傳回,無則向伺服器要求網頁

hierarchical caching(階層式快取),目前廣泛使用
節省聯外頻寬,多台快取伺服器分工增加穩定度,改善整體快取效果
個別pc要求 > 本地代理程式 > lan代理程式 > isp代理程式
若無則向後一個代理程式處理

…………………………………

Proxy server(代理伺服器)
網路下載網頁的中間人
當使用者要去瀏覽網頁時,則proxy會代替使用者機器去抓取網頁,之後再回傳網頁給使用者端
優點:下載網頁速度加快,增加下載續傳支援,上網更安全,流量控制,認證
缺點:若使用者抓取資料不同達不到重複利用效果,會造成多此一舉比原本不用proxy更慢
可讓不同proxy互相合作, 分享資料,相互支援,專業分工(可指定不同的proxy做不同的事),
運作模式可分
forward caching(正向快取):使用者端的
  現今的網頁瀏覽器皆普遍支援設定代理快取伺服器,即是使用這樣的架構
  依合作模式可在分為
  parent:若proxy向parent要資料,而parent無則會幫忙找資料,通常所消耗資會比sibling多
  sibling:若proxy向sibling要資料,而sibling無則不會幫忙找,通常會優先要sibling要資料
reverse caching(反向快取):網頁伺服器端的
  內部網站網址查詢的IP地址皆指向快取伺服器,使用者直接與快取伺服器連線
  也稱accelerator proxy,遠端存取web伺服器前需透過的proxy
  可加速遠端電腦存取本地端web伺服器速度
  可以保護web伺服器不易被針對port80的攻擊所傷害
transparent caching(透通快取):在網路節點上的
  支援網路傳輸層的路由器或網頁交換器等設備,將使用者的網頁需求導向到快取伺服器 
  也稱transparent proxy,存取遠端web時,router/nat會將連線轉給proxy,讓proxy存取
  使用者不用做設定即可使用proxy
  router與proxy之間使用wccp協定

代理伺服器的型式
 有支援代理:http,ftp,dns
 需設定直接對應:smtp,pop3
 通用的代理伺服器:socks,允許使用tcp為傳輸協定的用戶端
 多媒體:real audio,VDOlive,RTSP

使用Proxy Server設定
Automatic Proxy configuration:需填pac檔所在位置
Manual Proxy configuration:需填server位置與port號

proxy.pac
Proxy Server的分流程式,可發揮proxy server的效能與有效控管
分流程式是由JavaScript Function組成,預設副檔名是.pac,一般都是用proxy.pac這個名字,它必需獨立,不能包含在HTML中
proxy.pac可把它當成網頁,放在web server上讓瀏覽器讀取。
ex:把設定檔放在WEBSERVER(www.xxx.tw)的首頁目錄,則瀏覽器的設定就是:http://www.xxx.tw/proxy.pac



Proxy Server相關軟體:

Squid Web Proxy Server
Microsoft ISA Server
socks proxy


socks vs squid
socks是一種網路代理協定,該協定可以讓客戶機通過Socks伺服器獲得對Internet的完全訪問能力。
Scoks在伺服器和用戶端之間建立一個安全的代理資料通道,從客戶的角度看來,Scoks是透明的;從伺服器的角度看來,Socks就是用戶端。
用戶端不需要具有對Internet的直接訪問能力(也就是說,可以使用私有IP位址),因為Socks伺服器能夠把來自於用戶端的連接請求重定向到Internet。
此外,Socks伺服器可以對用戶連接請求進行認證,允許合法用戶建立代理連接。
同理,Socks也能防止非授權的Internet用戶訪問及的內部網路。所以常常把Socks當作防火牆來使用。
常見的流覽器如netscape、IE等可以直接使用Socks, 並且我們也可以使用socsk5的所帶的client來使那些不直接支援socks的internet軟體使用Socks。
更多的資料可以參考Socks官方站點http://www.socks.nec.com。
squid
對於web用戶來說,Squid是一個高性能的代理緩存伺服器,Squid支援FTP、gopher和HTTP協定。
和一般的代理緩存軟體不同,Squid用一個單獨的、非模組化的、I/O驅動的進程來處理所有的用戶端請求。
Squid 將資料元緩存在記憶體中,同時也緩存DNS查詢的結果,除此之外,它還支持非模組化的DNS查詢,對失敗的請求進行消極緩存。Squid支援SSL,支援訪問控制。
由於使用了ICP(輕量Internet緩存協議),Squid能夠實現層疊的代理陣列,從而最大限度地節約帶寬。
Squid由一個主要的服務程式squid,一個DNS查詢程式dnsserver,幾個重寫請求和執行認證的程式,以及幾個管理工具組成。
當Squid啟動以後,它可以派生出預先指定數目的dnsserver進程,而每一個dnsserver進程都可以執行單獨的DNS查詢,這樣一來就大大減少了伺服器等待DNS查詢的時間。