这个页面缓存系统是否合理?

时间:2010-09-04 22:09:38

标签: web-applications http-headers web-optimization

我正在开发一个基于网络的系统,用户可以点击很多页面。因为他们经常会返回特定页面(例如,书籍概述),所以我想实现一些缓存机制来加快速度。

在显示用户的内容之前,我会在数据库中存储内容的MD5校验和,以及用户的ID和页面的URL。

当他下次登录时,我将检查是否有包含URL和UserID的条目。如果有,我将存储的MD5与我刚刚计算的MD5进行比较,如果MD5相等,我发送一个“未更改”的标题,这样浏览器就不会下载整个页面。

1 个答案:

答案 0 :(得分:3)

您是否首先对Web应用程序进行了分析,以确定性能瓶颈的位置?

谨防不必要的优化:如果页面已经加载得很好但是你试图挤出几个百分点的速度,我个人不会打扰任何专门的优化。

使用建议的方法,请记住,除了MD5计算之外,您仍将进行数据库命中。首先确保您在数据库中具有适当的索引以加快查询速度 - 这可能就是您需要做的全部。

页面图片重吗?图像是作为BLOB存储在数据库中还是存储在文件系统中?如果图像存储在数据库中,请将它们移动到文件系统并将文件名存储在数据库中。使用专用于静态内容的Web服务器来提供图像。静态内容服务器也可以是您的应用程序的代理。

如果目标是根据明文内容(即HTML,CSS和JavaScript)减少带宽使用,我建议只需打开gzip压缩。另外,请考虑这种情况下的静态内容Web服务器。

但是要回答你关于你提出的解决方案是否合理的问题:我认为它可以起作用,但是在任何给定的网站上它是否有效有很多因素。因此,您可以做的一件事是实施缓存系统,然后针对您的网站运行基准测试(例如Apache ab),看看它是否确实有所作为。