blog需要静态化?
2006-08-14
昨天和Angel聊到静态化的问题,今天发现他写了这篇日志,深表赞同。我这里加上我的一些看法。(这些观点的出发点是blog程序,而不是CMS、下载系统等。)
静态页面生成技术的核心就是把始终不变的或者很少改动的网页内容在第一次动态解析后保存成静态文件,避免每次打开页面都需要重新生成,省去动态的步骤,达到提速、降耗、节源的目的。另外,搜索引擎对于结构复杂的动态文件地址难以准确抓取,而静态页面的访问地址固定,形式干练,适合搜索引擎收录,方便永久保存。
很诱人。但是,静态适合的是极少变动的内容。网页的互动性越强,动态的必要性和可行性也越低。对于一个CMS来说,文章生成后即很少变动;但对于blog来说就不是这么回事了。blog天生就是一个以互动交流为特点的平台:用户评论和留言(同时考虑审核机制)、来自其它blogger的trackback、你针对留言和评论发布的管理员回复、根据反馈及时修改你的日志、不断添加和变动的串联(链接)等等。你的blog系统里真正一成不变的东西有多少?如果你的要求是建立一个保存资料的资料库,那么cms是你的选择,而不是blog,一开始你就走错方向了。如果说动态的blog在每个页面的输出上耗费服务器资源,那么静态的blog将在你不断地重写静态文件中消耗资源。静态真的能减少资源的消耗么?对于一个cms,是的;对于一套多用户、大流量的blog系统,或许;对于一个单用户的个人blog,未必。
静态两个字绝对不应该成为一种时髦。它有自己的用武之地,但不代表所有系统都适合/必须静态。
不静态不等于不能获得静态化的益处。静态化的好处——搜索引擎友好,可以通过URL Rewrite(比如WordPress),可以通过生成一个动态的指向文件(比如PJBlog)以获得。不要把引擎搜索不到页面的问题全部归咎到动态上,它和PR、RP(玩笑)都有关系。我不讳言,现在的这种 read.php/2.htm 的伪静态,Google收得很多,百度收得很少。这是SEO的策略、方法问题,与动态还是静态无关。需要的朋友可以去论坛下载网友修改版的程序,利用Apache的重写模块,将你整个blog的核心链接地址全部变成html。
总之,任何功能和特性都只有在合适的时机、合适的地方才会添加。如果有一天多用户版开写的话,我自然会把静态化放上日程表。
通常总认为静态页面执行速度快且不费资源,很多大型网站都将最终页面生成静态的,可是从.php技术说它本身支持多种级别的缓存,而且很多种模板支持缓存,就速度来说。已经不是什么急需解决的难题,而且和HTML静态页面的速度可以说没有区别。还有必要生成静态的么?
单用户的博客系统不同于各种CMS,大流量,服务器完全可以承受,除非那种查询很多的博客,基于数据库的WEB程序非常多,竞争造成了静态页面的流行。对于那些死的不变的系统,批量生成html页面确实是不错的技术,大大提高网站的稳定性、降低负载。可以减少SQL服务器的负荷。我觉得模拟静态和真正的静态没有什么区别。没有必要用那么一大堆文件。和那么多代码代替几行模拟静态的代码。而且后期维护也麻烦。改动一次还要写一次文件,就安全角度来说,多一个可写目录。多一个保存后门的地方。
至于为了搜索引擎而优化,这个其实是误传。看搜索引擎列出的页面,asp、cgi、php、aspx的什么都有,并不时只有html的。搜索引擎看的是内容(例如一些关键head中的标记),要根据所有引擎的算法不断修改产生的页面的内容。即使不模拟出静态页面,也照样可以搜索得到。比如:
http://www.baidu.com/baidu?word=%C2%DB%CE%C4%CC%E1%B8%D9&tn=myie2dg
上面的关键词,就是“论文提纲”,搜索出来的就是Sablog程序。排行第一。照样不是静态文件,不是html结尾。所以说静态文件和非静态的,对搜索引擎没有什么影响。
还不知道有什么理由还要做静态生成?<!-- Added by RelatedTopic, plugin for Bo-Blog 2.0.0 -->
静态页面生成技术的核心就是把始终不变的或者很少改动的网页内容在第一次动态解析后保存成静态文件,避免每次打开页面都需要重新生成,省去动态的步骤,达到提速、降耗、节源的目的。另外,搜索引擎对于结构复杂的动态文件地址难以准确抓取,而静态页面的访问地址固定,形式干练,适合搜索引擎收录,方便永久保存。
很诱人。但是,静态适合的是极少变动的内容。网页的互动性越强,动态的必要性和可行性也越低。对于一个CMS来说,文章生成后即很少变动;但对于blog来说就不是这么回事了。blog天生就是一个以互动交流为特点的平台:用户评论和留言(同时考虑审核机制)、来自其它blogger的trackback、你针对留言和评论发布的管理员回复、根据反馈及时修改你的日志、不断添加和变动的串联(链接)等等。你的blog系统里真正一成不变的东西有多少?如果你的要求是建立一个保存资料的资料库,那么cms是你的选择,而不是blog,一开始你就走错方向了。如果说动态的blog在每个页面的输出上耗费服务器资源,那么静态的blog将在你不断地重写静态文件中消耗资源。静态真的能减少资源的消耗么?对于一个cms,是的;对于一套多用户、大流量的blog系统,或许;对于一个单用户的个人blog,未必。
静态两个字绝对不应该成为一种时髦。它有自己的用武之地,但不代表所有系统都适合/必须静态。
不静态不等于不能获得静态化的益处。静态化的好处——搜索引擎友好,可以通过URL Rewrite(比如WordPress),可以通过生成一个动态的指向文件(比如PJBlog)以获得。不要把引擎搜索不到页面的问题全部归咎到动态上,它和PR、RP(玩笑)都有关系。我不讳言,现在的这种 read.php/2.htm 的伪静态,Google收得很多,百度收得很少。这是SEO的策略、方法问题,与动态还是静态无关。需要的朋友可以去论坛下载网友修改版的程序,利用Apache的重写模块,将你整个blog的核心链接地址全部变成html。
总之,任何功能和特性都只有在合适的时机、合适的地方才会添加。如果有一天多用户版开写的话,我自然会把静态化放上日程表。
通常总认为静态页面执行速度快且不费资源,很多大型网站都将最终页面生成静态的,可是从.php技术说它本身支持多种级别的缓存,而且很多种模板支持缓存,就速度来说。已经不是什么急需解决的难题,而且和HTML静态页面的速度可以说没有区别。还有必要生成静态的么?
单用户的博客系统不同于各种CMS,大流量,服务器完全可以承受,除非那种查询很多的博客,基于数据库的WEB程序非常多,竞争造成了静态页面的流行。对于那些死的不变的系统,批量生成html页面确实是不错的技术,大大提高网站的稳定性、降低负载。可以减少SQL服务器的负荷。我觉得模拟静态和真正的静态没有什么区别。没有必要用那么一大堆文件。和那么多代码代替几行模拟静态的代码。而且后期维护也麻烦。改动一次还要写一次文件,就安全角度来说,多一个可写目录。多一个保存后门的地方。
至于为了搜索引擎而优化,这个其实是误传。看搜索引擎列出的页面,asp、cgi、php、aspx的什么都有,并不时只有html的。搜索引擎看的是内容(例如一些关键head中的标记),要根据所有引擎的算法不断修改产生的页面的内容。即使不模拟出静态页面,也照样可以搜索得到。比如:
http://www.baidu.com/baidu?word=%C2%DB%CE%C4%CC%E1%B8%D9&tn=myie2dg
上面的关键词,就是“论文提纲”,搜索出来的就是Sablog程序。排行第一。照样不是静态文件,不是html结尾。所以说静态文件和非静态的,对搜索引擎没有什么影响。
还不知道有什么理由还要做静态生成?<!-- Added by RelatedTopic, plugin for Bo-Blog 2.0.0 -->