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 分钟自动重试一次先前未响应的代理,在 30 分钟之后进行第一次重试,在 1 小时之后进行第二次重试,依此类推。因此,如果您暂时关闭了代理服务器,客户机至多在其重新启动后 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