WEB Cache 技术浅谈 计算机网络技术的成熟和不断发展使之成功地应用在了许多领域当中。其中,Internet可以说是大家最为熟悉,同时也是最为成功的一个范例,因为它已经渗透到了人们工作、生活、学习和娱乐的方方面面。Internet上的信息量和用户数正以惊人的速度不断增长,这对众多企业和ISP来说是一个挑战。因为他们要解决WAN网络带宽拥挤和传输费用高的问题,要提高网络服务质量,要提高Internet/Intranet上内容的可用性,只有这样才能使Internet不会成为一块“食之无味,弃之可惜”的鸡肋。WEB Cache技术正是在这样一种环境下发展起来的。 WEB Cache技术在现有网络架构的基础之上,利用传输本地化的方法达到了优化使用网络带宽、提高网络服务质量、增强网络信息可用性以及提高网络灵活性的目的。WEB Cache为什么能实现上述功能呢?通过下面的介绍,大家就会清楚了。 一、Web浏览器中的Cache功能 提起WEB Cache,有些人可能会感到比较陌生,但是如果提起IE和Netscape Navigator来的话,恐怕可以说是无人不知、无人不晓了。用过这两种浏览器的人可能会遇到过下面的情况:假如你是一位通过拨号上网的用户,你在未拨号或号码未拨通之前就启动浏览器访问某个网站,该网站的WEB页面仍然会显示在你的面前,而且速度比往常还要快,这是为什么呢?聪明的用户马上就会联想到,一定是浏览器将以前访问过的页面存放在本地的硬盘上了。没错!这正是浏览器提供的一项功能。拿IE来说吧,你可以在IE中通过“Internet选项”对Internet临时文件进行设置,将已查看过的Internet页存放在本地硬盘特定的文件夹中,以便提高以后的浏览速度。这和WEB Cache的工作原理是一致的。用户可以通过这种方法来加快自己的浏览速度。 接下来让我们看一个例子,假设在一个局域网中有A、B、C三台机器,它们都会经常访问同一些网站,那么用上面讲到的方法可以将这些被访问网站的某些信息分别存储在A、B、C三台机器的硬盘上,以提高它们各自的浏览速度。有人会问,既然是同样的信息,为什么不能存储在一台机器上,而让另外两台需要这些信息的机器到这台机器上来存取呢?这样既可以提高浏览速度,又可以节省空间,特别是当局域网中机器数量众多时,这样做就显得更为有必要了。遗憾的是,仅仅使用WEB浏览器(如IE)中提供的Cache功能尚不能做到这一点,但这恰恰是WEB Cache要解决的问题。
二、代理服务器Cache Web Cache基本可以分为两类,一类叫做代理服务器Cache,另一类叫做容器Cache。
代理服务器Cache作为代理服务器的一部分来完成Web信息缓存任务,它一般是运行于通用硬件平台和操作系统上的缓存软件,例如Microsoft的Microsoft Proxy Server 2.0软件中就设置了Cache功能。如图2所示,代理服务器一般位于Web客户端和Internet Web服务器之间,它就象一个收发员,收到客户端发往Web服务器的请求之后,先要检查一下自己是否能满足该请求,如果能的话,就将存储在本地的Web信息提供给用户,而不必从WAN上去获取;如果用户请求的内容没有存储在Cache中,代理服务器就将用户的请求转发给到相应的Web服务器上,Web服务器响应用户请求传送给用户的页面会先到达代理服务器。代理服务器会将页面存放在本地的Cache中,然后再把它转发给相应的Web客户端。 除此之外,代理服务器还具有过滤用户请求的功能,例如可以防止用户访问某些特定的站点。 代理服务器Cache的缺陷主要包括以下几方面: * 代理服务器的主要目的是使若干个用户通过代理服务器连接Internet,虽然其中设置有Cache功能,但由于是用软件实现Cache功能,所以其Cache功能往往受到硬件和操作系统的限制,不能达到优化; * 代理服务器易受网络负载过重的影响; * 由于代理服务器是所有用户访问Internet的必经之路,本地Web客户端和Internet上Web服务器之间传输的所有数据包都要经过代理服务器的检查,这一方面有可能使代理服务器成为数据传输的瓶颈,另外一方面如果代理服务器出现故障,所有通过代理服务器访问Internet的用户都将无法连接Internet了。 * 如果某个用户想要通过代理服务器接入Internet的话,他必须在自己本地的浏览器中进行设置,使之指向代理服务器。例如,在IE 4.0中,通过“Internet选项”->“连接”中的代理服务器设置就可以使浏览器通过某个代理服务器访问Internet。 下面让我们来看一个具体的例子。 Microsoft Proxy Server 2.0是一个集代理服务器、Cache功能和防火墙功能于一身的软件,Microsoft声称使用该软件中的Cache功能平均可以节省50%的响应时间。Microsoft Proxy Server 2.0还可以实现分布式Web Cache,这种分布式Web Cache能够提高整个系统的容错能力、升级能力和负载均衡能力,因此可以用于要求较高的企业和ISP。另外,Microsoft Proxy Server 2.0可以支持几种不同的Internet协议和服务(如HTTP、FTP)。下面我们就该产品中Cache内容的刷新算法和分布式Cache的实现做简单的描述。 Microsoft Proxy Server 2.0提供主动的Cache预取功能,它能够自动地测定用户访问最频繁的Web站点以及这些站点中Web信息的更新频率。然后网络管理员可以在软件中为存储在Cache中的Web内容设置一个生存时间(TTL-Time To Live),一旦存储在Cache中的Web内容超过了这一生存时间,Cache就会自动的到Internet上去获取这些内容的最新拷贝,并将之存放在Cache中。这些功能选项和参数在系统中设定以后,Cache就会自动地按照设定去执行预取操作,不需要网络管理员的干预。另外,Microsoft Proxy Server 2.0还会检测CPU的占用情况,并根据CPU的使用情况决定何时进行预取,这样做的目的是尽量在CPU空闲的时候执行预取操作以避免与CPU工作高峰期的其他网络传输产生冲突,尽可能地提高整个系统的效能。 接下来看一下Microsoft Proxy Server 2.0中分布式Cache的实现,这也是Microsoft Proxy Server 2.0的一个特点。分布式Cache的优点在于可以减轻每一个代理服务器的负担、具有较强的容错能力、能够更好地利用Cache中的数据为Web客户服务。Microsoft Proxy Server 2.0提供了三种实现分布式Cache的手段:代理服务器阵列(图3)、代理服务器链(图4)以及这两种方法的结合(图5),其工作过程与下面将要讲到的容器Cache的分层配置基本相同。关于如何用Microsoft Proxy Server 2.0实现Cache阵列和Cache链,这里就不多说了。