现在很多网站都是使用以“.html“为扩展名的网页,这样做的好处是有利于搜索引擎收录和排名,或者是其他目的,如可以缩短网址使人容易记住。不过有意思的是并不是所有的以“.html”扩展名的网页都是静态的,换句话来说,它其实是一张动态的网页,并非真实的静态网页。
什么是伪静态网站
伪静态是相对真实静态来讲的,通常我们为了增强搜索引擎的友好面,都将文章内容生成静态页面,但是有的朋友为了实时的显示一些信息。或者还想运用动态脚本解决一些问题。不能用静态的方式来展示网站内容。但是这就损失了对搜索引擎的友好面。怎么样在两者之间找个中间方法呢,这就产生了伪静态技术。就是展示出来的是以html一类的静态页面形式,但其实是用ASP一类的动态脚本来处理的。
区别静态编辑
1. 从URL结构以及页面名称看,伪静态和静态页面是一样的。伪静态的页面后缀可以是html htm 或者是目录格式
2. 伪静态只是改变了URL的表现形式,实际上还是动态页面
3. 静态页面可以节省服务器资源,而伪静态严格说是增加服务器资源消耗的
总结,在SEO方面,伪静态和静态页面的功能是相同的,但是伪静态本质上还是动态页面,所以消耗资源是和动态页面一样的,而且因为Rewrite服务器还需要消耗额外的资源。
判断网页是真静态还是伪静态的简单方法
这里介绍三种判断网页是真静态还是伪静态的简单方法。
IE浏览器用户
用IE浏览器打开网页,注意,要IE浏览器,打开后,在地址栏里输入“javascript:alert(document.lastModified)”,按回车键,就会看到一个弹窗小窗,里面是一个时间。如下图所示:
IE查看网页最后更新时间
多次刷新网页,用同样的方法,比较弹窗的时间,如果都是一样的,那就是真实的静态网页,否则就是伪静态(动态网页)。
其他浏览器(Chrome)用户
不过上述的方法在其他浏览器里如Chrome并不适用。(注意,该方法在Firefox新版里不适用了)
Chrome浏览器可使用如下方法:
先用浏览器(以Chrome为例)打开一个网页如:http://www.wh0553.cn/
,等网页完全打开后进入浏览器的控制台,方法:"开发者工具"-“错误控制台”,快捷键:shift+ctrl+J
,然后在控制台里面输入:alert(document.lastModified); ,按回车键后查看最后修改时间并记录。
错误控制台
Chrome查看网页最后修改时间
多次刷新网页,用同样的方法,比较弹窗的时间,如果都是一样的,那就是真实的静态网页,否则就是伪静态(动态网页)。
从网页header查看网页最后修改时间
第三种方法是,从网页header查看网页最后修改时间。
打开检测工具,http://pagespeed.webkaka.com/youhua/gzip/,输入你要检测的网页地址,得到header信息,查看“Last-Modified”这个项目的时间,测试几次,比较下如果都是一样的,那就是真实的静态网页,否则就是伪静态(动态网页)。
从网页header查看网页最后修改时间
伪静态的坏处
1、当然犹如一篇文章的作者所说的:"如果流量稍大一些使用伪静态就出现CPU使用超负荷,我的同时在线300多人就挂了,而不使用伪静态的时候同时在线超500人都不挂,我的IIS数是1000。”确实是这样的,由于伪静态是用正则判断而不是真实地址,分别显示哪个页面的责任也由直接指定转由CPU来判断了,所以CPU占有量的上升,确实是伪静态最大的弊病。
2、网站承受力低。
另外,会造成网站可承受同时在线人数剧减。如果你的网站可以保证1000人同时访问的话,那么做了伪静态处理之后,300人访问就足以让你网站挂掉。
3、网页打开慢。
伪静态页面打开速度快,简直太搞笑了,伪静态仍然要读取数据库,还额外的多了一个.重写网址.的过程,其他的步骤绝对不会比动态少,怎么会快呢?
4、大量的重复页面。
做了伪静态后,原有的页面也可以访问,这就造成了大量的伪静态页面和动态页面重复,对网站极为不好。
5、需要服务器支持。
并不是所有的服务器都支持伪静态的,这无形中又增加了成本。
所以,如果网址中的动态参数没有达到影响搜索引擎收录的程度,动态要比伪静态好的多。
6、造成真正的静态网页无法访问。
如果把php伪静态成html,那么真正的静态页就无法访问了。(可通过修改服务器配置解决,可是你又何必去费这把力气呢?)
如何选择真静态还是伪静态
1、使用真静态和伪静态对SEO来说没有什么区别
2、使用真静态可能将导致硬盘损坏并将影响站点性能(这个实在是个谬论,非静态的对硬盘的读取次数胜过真静态)
3、使用伪静态将占用一定量的CPU占有率,大量使用将导致CPU超负荷
4、最重要的一点,我们要静态是为了SEO
5、真静态的访问速度明显比伪静态的访问速度要高
所以:
1、使用真静态的方法可以直接排除了,因为无论怎么生成,对硬盘来说都是很伤的。(这个完全是乱讲了,真静态可以提高网站的性能,减少数据库的访问压力,减少CPU和内存的压力。)
2、既然真伪静态的效果一样,我们就可以选择伪静态了。
3、但是伪静态大量使用会造成CPU超负荷。
4、所以我们只要不大量使用就可以了。
5、既然伪静态只是给搜索引擎爬虫看的,我们只需要伪静态给搜索引擎爬虫就行了,不需要给用户使用。
6、所以我们只要在专门提供给搜索引擎爬虫(搜索引擎机器人)爬的Archiver中使用伪静态就可以了。
在网上流传了很多关于网站生成HTML静态会对硬盘有损伤的说法(当然这里的损伤概念是指相比普通的应用程序而言,非指任何系统和程序都会让硬盘折寿类型的常规损伤)。但通过Google、百度并没有发现出现过这个问题的真实例子存在,大部分都是道听途说、人云亦云并没有一个比较合理的解释,下面就这个问题来作一个简单的分析。
首先,假设“网站生成HTML静态会对硬盘有损耗”这个说法成立,这个问题影响最大的应该是IDC行业中的虚拟主机服务商,因为主流CMS、论坛系统、网店系统、博客系统大多数都支持生成HTML静态功能,而且一般情况下一台服务器中都会存在100-300个虚拟主机同时运行,在有如此大的硬盘损耗的情况下,国内竟然没有一家虚拟主机服务商限制生成HTML静态站点在其虚拟主机上运行,这个现象是不是反常呢?是不是由于硬盘价格比较低虚拟主机服务商不在乎了呢?其实不然,因为想在短时间内恢复100-300个网站的数据并不是一件简单的事情,同时基于网站稳定性和硬件成本方面的考虑虚拟主机服务商不可能不在乎。所以在IDC行业中“网站生成HTML静态会对硬盘有损耗”一说法是不成立的。
其次,假设“网站生成HTML静态会对硬盘有损耗”这个说法成立,那为什么还会有那么多主流CMS、论坛、网店、博客软件公司去研发这个功能呢?这个现象是不是反常呢?因为生成HTML静态功能可能造成用户硬盘损坏而引起数据丢失,软件开发公司是肯定需要承担相应责任的,应该没有哪家软件公司会在增加自己研发成本的基础上去开发一个对自己有负面影响的功能。所以在软件行业中“网站生成HTML静态会对硬盘有损耗”一说法是不成立的。
大家都知道对硬盘的操作主要分为“读”与“写”两大部分,先分析生成HTML静态对硬盘“读”的影响:
现在以最常见的PHP动态网站为例,普通的PHP网站的执行过程是先读取PHP文件、然后根据PHP文件中的代码读取数据库中的数据,最后输出到访问者的浏览器中进行显示。在这个执行过程中PHP文件至少读取一次(如果代码中包含include之类的语句的话还需要读取更多次),数据库至少读取一次(一般情况下需要读取多次),在这个过程完成之前一般需要读取硬盘2-20次左右,当然不同的WEB服务器、数据库、系统对IO的操作过程也不一样,但基本可以初步了解到这个实现基本过程。
再来看“生成HTML静态”网站的执行过程,很明显执行过程就是直接读取HTML文件再传输到访问者的浏览器进行显示,对硬盘的读取操作只有1次。
根据以上分析可以得出结论,“生成HTML静态”网站只有普通动态网站读取硬盘频率的1/10,再加上“生成HTML静态”网站可以利用浏览器的页面缓存,对硬盘读取的频率可以进一步降低,“生成HTML静态”网站在硬盘的“读”操作方面没有任何损伤,反而可以更好的保护硬盘。
明白了生成HTML静态对硬盘“读”的影响,我们再来看看生成HTML静态对硬盘“写”的影响:
还是以现在最常见的PHP动态网站为例,PHP动态网站在添加文章时直接把数据写入了数据库,对硬盘进行了一次写操作。而“生成HTML静态”网站在写入数据库的同时把数据又写入了文件,对硬盘进行了两次写操作。但在实际项目中,我们只会把修改频率非常低的内容生成HTML静态,比如文章、商品内容,这些页面的写频率本身就非常非常低的,比如我们站点发布的文章在发布后几乎就不会再进行修改了。对于一个拥有10万篇文章的站点来说,平均一篇文章修改1次,对硬盘的写入次数也才20万次,一般服务器硬盘的使用寿命都在5-10年左右,其实再放大数万倍也不至于达到能够损伤硬盘的地步。不相信的朋友可以下载DiskCountersView软件查看一下你自己的电脑在24小时内读写硬盘的次数,在普通情况下24小时内读写硬盘的次数就会超过了千万次,如此计算20万次硬盘写入几乎可以忽略不计。
根据以上的分析可以得出结论,“生成HTML静态”网站比普通动态网站硬盘写入频率高2倍,但由于生成“生成HTML静态”的内容几乎不会再进行修改,所以对硬盘的写入次数可以忽略不计,不会对硬盘造成任何损伤。
总结:在最有说话权的IDC行业和软件行业中“生成HTML静态页面对硬盘有损伤”的说法并不成立,而且通过技术分析也证明生成HTML静态页面并不会对硬盘造成任何损伤,相反还可以极大的降低对硬盘、数据库的读取操作频率,提高站点访问速度。
知识扩展:
网址切勿带问号
不管是真静态还是伪静态,只要网站访问速度够好,都不影响搜索引擎的收录和排名,所以不用纠结这方面SEO的问题。
而对于伪静态与那些带问号的网址相比,伪静态的优势是显而易见的。
搜索引擎对那些带问号的网页的收录和排名是很谨慎的,一般不轻易收录,更不给予好的排名。揪根掘底的来说,为什么搜索引擎会不收录带问号的网址?因为搜索引擎怕由于问号而进入死循环(以前动网就有这样一个漏洞,蜘蛛进去出不来了),所以很多时候带问号的地址是不会进去的,伪静态对于搜索引擎来说,其实就是静态,因为地址中没有带问号,所以伪静态收录不成问题。