动态万维网页面的受控缓存
立即解锁
发布时间: 2025-08-23 00:10:30 阅读量: 2 订阅数: 20 

# 动态万维网页面的受控缓存
## 1. 相关工作
在动态网页内容缓存的研究领域,已有诸多相关工作。一些研究提出了网页视图物化的成本模型,还有研究探讨了网页的预生成以及信息库的变更处理,但未给出选择最合适页面进行缓存的算法。
动态内容的缓存也在其他研究中有所讨论,同时还有关于降低Web服务器在动态内容创建方面工作量的技术。动态内容缓存主要分为两类:
- **主动缓存**:服务器提供附加在文档上的缓存小程序,当用户“命中”缓存对象时执行。该方案虽能降低网络负载,但CPU成本较高。
- **Web服务器加速器**:位于Web服务器前端,曾用于提升1996年奥运会和1998年冬奥会网站的性能。1998年冬奥会使用了数据更新算法,使缓存命中率接近100%,但在处理大量动态页面的网站时存在不足,因其依赖维护描述网页与底层数据依赖关系的细粒度图。
此外,还有不同的缓存机制,如将缓存机制置于Web服务器之后,结合细粒度和粗粒度依赖关系,使用基于URL类的失效方法和选择性预计算。商业产品如Cold Fusion和XCache也实现了动态内容的缓存。然而,现有的这些技术都存在一些问题:
- 需要应用程序员进行额外的开发和维护,以适应缓存方案。
- 失效页面的指定使用专有规范或API,增加了系统的整体复杂性。
- 大多数实现与特定的Web服务器耦合,降低了互操作性和可移植性。
## 2. 维护动态生成页面的缓存
可以使用如图1所示的架构以受控方式维护动态内容的服务器端缓存。该方案在现有网站安装基础上增加了两个软件模块:缓存管理器和更新管理器,它们分别负责维护缓存以及确保在数据修改时缓存能得到一致更新或失效。新模块作为现有安装的前端,无需对现有安装进行重大更改,仅更新程序可能需要一些添加。
### 2.1 缓存管理器的初始化与配置
缓存管理器启动时,会读取其配置,该配置基于基于类的动态Web内容缓存管理。在这种方案下,网页根据页面URL和客户端信息进行分类。URL信息包括网络路径、程序名称和参数,客户端信息可补充类的规范,如cookie、客户端域名或IP、浏览器信息等。
以下是三个类的缓存规范示例:
| URL-Class | Cachable | Server |
| --- | --- | --- |
| http://www.example.org/php/comments.php?op=submit | No | local-www-srv:80 |
| http://www.example.org/php/search.php | no | local-www-srv:80 |
| http://www.example.org/php | yes <br> Page-ID:_cookie:LANGUAGE | loc
0
0
复制全文
相关推荐







