网页加速:尽量实现网页的静态化

本文属于《高性能web前端优化指南》系列文章。

注意:这不是一篇如何实现网页静态化的教程,不是一篇技术文章。

网页静态化是指把网页保存为.htm或.html等后缀(也有.shtml和.jhtml等奇怪的后缀)的“真实”文件。这个“真实”是指能在该文件的物理路径下查找到它,比如c:\web\1.htm。之所以强调真实的静态化,是因为还有一种“伪静态化”,就是虽然你访问的是http://www.jo2.org/archives/233.htm,但实际上你根本不能在本站的archives下找到一个233.htm文件,甚至你根本不会找到archives这个文件夹——因为他们都是通过程序模拟出来的,其实是不存在的。

伪静态在网站程序上应用很广,如wordpress就是用的伪静态。

html静态网页到底有什么好处呢?甚至让人宁愿弃用“真动态”而要假冒“伪静态”?

第一呢,.htm(或.html)是最基本的网页文件,应用成熟,识别率高,学习难度也比较低。任何学习网页制作的人无不是从写html代码开始做起。一般说的“网页”,就是指html.

第二,html静态网页不需要交换数据:php等服务器端处理语言(动态),在任何访问时刻都是要经过与服务器交换数据并解析过后才会展示出来,这个与服务器交互的过程是需要花费时间的,而且,如果报错了,那错误位置后面的东西就再不会加载出来了——这一点对于喜欢改wordpress主题的同学肯定深有体会。html静态文件就没有这个交互过程,写什么就是什么,所以速度怎么说也要快些。

第三,静态网页利于缓存。静态网页的源码及图片等文件,都可以缓存,不存在与服务器交互确定文件是否更改的过程。

第三,静态的html文件更有利于搜索引擎收录。因为他浏览速度快,便于解析,更改不频繁。一般的动态网页地址,可以举个例:http://xx.com/12.php?id=3232323&name=klasjd。。。可以想象,这种地址几乎没有人能猜到,如果没人带路,无论是人还是搜索引擎,都会迷失在?后面。所以,动态网页对收录很不利。

简单的说,静态化的网页,就是不需要与服务器沟通并解析的网页,可以脱离数据库,而且易于收录。比如你把你网站的数据库整崩溃,网站肯定是打不开了,但你还是能打开你网站上的纯html文件,搜索引擎也能访问到。

如何实现网页静态化?

无论你的网站是使用的什么服务端语言,无论是php,asp还是jsp,都有把网页输出为纯静态的方法,具体可以交给后台程序员去做——不过,有的网站没有实现这个功能,比如大部分公司自己开发的企业网站程序,几乎全是.asp,.php为后缀的动态网页。

对于这种网站,我建议老板可以叫程序员实现网页静态输出(前提是加工资)。或者,直接换一套网站系统。但这个实现起来很困难,因为老网站已经有不少收录量了,如果改版,可能以前的链接就全死了。

其实还是有办法解决。一可以把网站改版,直接输出静态网页,然后通过301重定向等手段把老链接定向到新链接。比如你的网页只是后缀是.php,那只要把维持网页目录不变,然后输出静态html到相同路径,最后用301重定向一下,搞定。这种重定向很好写,大家可以去google搜索。

如果你的动态网页结构如前面的例子那样坑爹,改动基本不可能,那就只有使用前面说过的“伪静态”。

伪静态,又不是真正的静态,那速度估计也快不到哪里去,为什么要用伪静态呢?因为合理的伪静态起码可以使网站结构清晰,利于搜索引擎的爬虫查询。

举个例吧,比如你的动态网页地址是:http://jo2.org/?p=123&name=lix,那你可以使用伪静态重定向(没错!还是重定向!),将地址变成http://jo2.org/p/123/name/lix.html,这样既符合动态网页的原本逻辑,又实现了清晰的网站结构。以此类推,实现整个网站的伪静态也并不难,甚至可以连程序都不改,只改.htaccess文件——这是linux服务器的实现办法,但windows服务器也可以实现的。

不过,虽然后期由动态网页变静态网页可行,但我还是建议在网站架设的时候,就实现静态化,以免来回折腾,劳神伤财。

为什么程序员不愿意做网站静态化,因为相对于动态网页,实现静态网页的输出的确比较麻烦,而且考耐心。但好处是明显的,值得老板投资。

网页静态化手段我又得推荐“真”静态,因为真静态即使在你数据库出错的情况下依然可以正常访问,而伪静态还是与数据库“同生共死”的。

读者:你老强调“真”,我怎么觉得你想说“真”XX无双呢?。。。。我打!!

1 评论

发表评论

电子邮件地址不会被公开。