传统观点认为,影响网络访问速度的主要因素有网络带宽、访问距离和服务器的处理能力。随着网络接入速度的不断提升,主干带宽的不断扩容,目前的网络环境已经得到了极大的改善,影响网络访问速度的主要瓶颈出现在服务器的承载能力和处理能力方面。在实际使用Web服务器的过程中,我们能够看到绝大多数的产品在提高自身负载能力的方面提供了各式各样有效的办法,比如使用镜像服务器、使用缓存服务器、实施负载均衡等。
响应速度历来是衡量Web应用和服务性能优劣的重要指标之一,尤其在动态网站在网络上泛滥的今天,除了优化发布内容本身以外,另一个主要的办法就是把不需要实时更新的动态页面输出结果转化成静态网页形成缓存,进而按照静态网页来访问。这样的机制使得动态网站的响应速度显著提升。Web缓存技术被认为是减轻服务器负载、降低网络拥塞、增强网络可扩展性的有效途径之一,其基本思想是利用客户访问的时间局部性原理,将客户访问过的内容建立一个副本,在一段时间内存放在本地,当该数据下次被访问时,不必连接到后端服务器,而是由本地保留的副本数据响应。
具体来说,该技术主要在Web服务器和客户端之间实现,Web服务器首先根据客户端的请求从后端服务器获取响应数据,并传回给客户端,同时,Web服务器将该响应数据在本地建立副本保存。当下次有相同的客户端请求时,Web服务器直接使用本地的副本响应访问请求,而不是向后端的服务器再次发送请求。
保存在本地的这些副本具有一个过期时间(也叫新鲜度),超过该时间将会更新。判断一个副本数据是否为过期数据的办法有很多,可以使用保留时间来判断,也可以使用数据完整度来判断。许多Web服务器还具有校验功能,就是当某些副本数据过期以后,先向后端服务器发送校验请求,后端服务器对这些数据进行校验,如果发现原数据和副本没有差别,则将过期副本重新置为可用副本。
Web缓存技术的优点是很明显的。由于客户端的部分请求内容直接从Web服务器处获取,该技术减轻了后端服务器的负载,同时也减少了Web服务器与后端服务器之间的网络流量,从而减轻了网络拥塞,同时还能减小数据传输延迟,有效降低客户访问延迟。该技术还能实现另一个很实用的功能,如果由于后端服务器故障或网络故障造成后端服务器无法响应客户请求,客户端可以从Web服务器中获取缓存的内容副本,这增强了数据的可用性,使得后端服务器的鲁棒性得到了加强。