Sun Java System Web Proxy Server 4.0.8 管理指南

FindProxyForURL() 函數

FindProxyFor() URL 函數的語法是:

function FindProxyForURL(url, host){   ...}

對於瀏覽器所存取的每個 URL,它會傳送 urlhost 參數,並以下列方式呼叫函數:

ret = FindProxyForURL(url, host);

url 是要透過瀏覽器存取的完整 URL。

host 是從要存取之 URL 擷取的主機名稱。這只是為了方便;它其實與 :// 與第一個 :或其後 / 之間的字串相同。此參數不包含連接埠號。如果有需要,可以從 URL 擷取。

ret (傳回值) 是說明配置的字串。

函數傳回值

自動配置檔案包含函數 FindProxyForURL()。此函數使用用戶端主機名稱與要存取的 URL 做為參數。此函數會傳回單一字串,告知瀏覽器如何繼續。若該字串為空,則表示不使用任何代理伺服器。該字串可包含下表顯示任何數量的基本元素,每個基本元素以分號分隔。

表 17–2 FindProxyForURL() 傳回值

傳回值 

導致的瀏覽器動作 

DIRECT

直接與伺服器連線,而不透過任何代理伺服器。 

PROXY host:port

使用指定的代理伺服器與連接埠號。若使用分號分隔多個值,則會使用第一個代理伺服器。若該代理伺服器故障,則會使用下一個代理伺服器,以此類推。 

SOCKS host:port

使用指定的 SOCKS 伺服器。若使用分號分隔多個值,則會使用第一個代理伺服器。若該代理伺服器故障,則會使用下一個代理伺服器,以此類推。 

若瀏覽器遇到無法使用的代理伺服器,瀏覽器會在 30 分鐘後自動重試先前無回應的代理伺服器,然後 1 小時後再重試,以此類推 (重試間隔為 30 分鐘)。因此,若您暫時關閉某個代理伺服器,在該代理伺服器重新啟動後,您的用戶端會在 30 分鐘內繼續使用該代理伺服器。

若所有代理伺服器皆已當機,且未指定 DIRECT 傳回值,瀏覽器將會要求使用者決定是否要讓瀏覽器暫時忽略代理伺服器,而嘗試直接連線。瀏覽器將會詢問是否要在 20 分鐘之後重試代理伺服器,然後 20 分鐘之後再詢問一次,以此類推 (詢問間隔為 20 分鐘)。

在以下範例中,傳回值將要求瀏覽器使用連接埠 8080 上名為 w3proxy.example.com 的代理伺服器。若該代理伺服器無法使用,瀏覽器會使用連接埠為 8080 上名為 proxy1.example.com 的代理伺服器。

PROXY w3proxy.example.com:8080; PROXY proxy1.example.com:8080

在下一個範例中,主代理伺服器是 w3proxy.example.com:8080 。若該代理伺服器無法使用,瀏覽器會使用 proxy1.example.com:8080。若兩個代理伺服器都無法使用,則瀏覽器會直接存取伺服器。在 20 分鐘過後,瀏覽器會詢問使用者是否要重試第一個代理伺服器。

PROXY w3proxy.example.com:8080; PROXY proxy1.example.com:8080; DIRECT