什么是伪静态?要明白这个概念首先我们需要先弄清楚两个前提概念:静态网站和动态网站。静态网站。
1.什么是静态网站 静态网站不能简单地理解成静止不动的网站,它主要指的是网页中没有程序代码,只有HTML(即:超文本标记语言),一般后缀为.html、.htm,或者.xml等。
静态网站由存储在 Web 服务器上的固定数量的预构建文件组成。这些文件是用HTML、CSS 和 JavaScript 编写的,因为它们在用户的 Web 浏览器中执行。当用户使用 URL 向服务器请求页面时,服务器会返回由 URL 指定的 HTML 文件以及任何随附的 CSS 或JavaScript 文件。
交换期间,Web 服务器在将文件发送给用户之前不会更改文件,因此该网站对于所有请求它的人来说都是完全相同的。即内容是“静态的”不管任何人任何时间打开的页面的内容都是不变的。更新网站唯一方法是手动更改文件的内容。
静态页面优点:(1)访问效率较高(2)页面内容固定不变,容易被搜索引擎收录(3)页面程序在用户浏览器端解析,当客户端向服务端请求数据时,服务器会直接从磁盘文件系统上返回数据。
静态网站的缺点:
(1)可扩展性差,任何时候我们想要进行站点范围内的内容更新,我们都必须更改每个单独的 HTML 文件。此外,每当我们想添加新页面时,都必须手动创建一个新的 HTML 文件。更新维护起来非常麻烦。
(2)缺乏个性化,无法为访问者定制内容,错过为访问者创造更具吸引力的体验的机会。,有许多类型的站点是无法静态构建的。例如,线上商城要允许用户将产品添加到他们的购物车并结帐,这就是静态网站无法实现的功能,除非依赖第三方工具。
什么是动态网站 所谓“动态”并不是指网页上简单的 GIF 动态图片或是动画、视频。动态网站在页面里嵌套了程序,这种网站对一些框架相同,更新较快的信息页面进行内容与形式的分离,将信息内容以记录的形式存入了网站的数据库中,以便于网站各处的调用。这样,我们看到的一个页面,可能在服务器上不一一对应某个 html 的文件了,网页框架里套了很多数据库里的记录中的内容。此外动态网页是与静态网页相对应的,也就是说,网页URL 的后缀不再是.htm、.html 、.shtml、.xml 等静态网页的常见形式,而是以 .asp、 .jsp 、.php 、.perl 、.cgi 等形式为后缀。无论网页是否具有动态效果,采用动态网站技术生成的网页都称为动态网站。
动态页面优点:
(1)更具吸引力的用户体验,能够为每个访问者个性化网站内容,这意味着更具吸引力的用户体验会带来更多的转化和购买。除了个性化之外,服务器端脚本非常强大,并为功能提供了无数可能性。动态代码使我们能够构建静态方法根本无法实现的 Web 应用程序、SaaS 软件和丰富的体验。
(2)更新内容的便利性,管理员可以快速轻松地对其站点进行全面更改,而无需更新每个HTML文件的源代码。
(3)更好的扩展性,同样以线上商城网站为例,假设您想向网站添加几个新产品。无需在HTML中构建单独的产品页面,您只需将产品信息存储在数据库中即可。服务器端脚本可以提取这些数据来自动构建产品页面。
动态网站的缺点:
(1)访问效率比较低,由于动态网页实际上并不是独立存在于服务器上的网页文件,只有当用户请求时服务器才返回一个完整的网页,其中涉及到数据的连接访问和查询等一系列过程,所以响应速度相对较慢
(2)不便于被搜索引擎收录, 动态网页中的“?”对搜索引擎检索存在一定的问题,搜索引擎一般不可能从一个网站的数据库中访问全部网页,或许出于技术方面的考虑,搜索引擎不会抓取网址中“?”后面的内容,因此采用动态网页的网站在进行搜索引擎推广时需要做一定的技术处理才能适应搜索引擎的要求。
理解以上两个概念后,就能非常容易的理解什么是伪静态了,即从文件后缀来看和静态页面一样,但是实际上他是个动态页面,只是通过技术手段伪装成立静态页面的样子,伪静态页面的内容是通过读取数据库生成的。
按目前网站的功能日益复杂化、个性化趋势,所以大部分需求都要动态网站才能满足需求,但是由于动态页面的生成是采用数据库的内容,网页内容主题的永恒性不能保证。这样造成了搜索引擎的阅读困难,即搜索引擎抓不住一个永恒的主题,因此不能输入到搜索引擎中的缓存( cache )中。动态网址里往往包含“?”和很多参数,这让目前技术条件下的搜索引擎在判断和识别造成了很大的困难。
那既然静态只是给SEO看的,我们只需要伪静态给SEO就行了,不需要给用户使用。所以把动态网址进行 URL 重写优化使其静态化,是一个非常重要的 SEO 技巧。动态页面的链接是动态产生的,在返回页面内容之前,动态脚本需要一些信息,如 cookie data 、 session id 或字符串。动态页面是基于数据库驱动的,通过脚本语言动态产生的页面。动态网站中有模板,内容一般存放于数据库中。要浏览页面时,模板调用数据库中的内容,参数被添加到 URL 上 , 这种复合型 URL 告诉了模板要装载的具体内容。浏览者在动态网站中通过使用查询字符串发现信息,这种查询字符串被键入表单中或被预先编码在主页上的链接中。
搜索“蜘蛛”不清楚如何使用查询功能,若“蜘蛛”用没有查询字符串的不完整请求向服务器提交,服务器会要求信息完整地址,这是“蜘蛛”不能理解的,从而可能陷入了一种死循环 中。搜索引擎难以处理动态网站,因不能提供产生页面需要的信息,会陷入到动态页面服务器中而不能自拔,蜘蛛和服务器陷入无限循环之中,会导致服务器瘫痪。因此,动态网页内容对大多数搜索引擎蜘蛛是不可见的,大多数蜘蛛反感动态页面,在识别出这种 URL 后会敬而远之。不会检索它。
因此需要把这些有价值的内容转换成随蜘蛛可见的形态。参数越多,越难以被检索到。为了克服这种不完整地址问题。最好是修改URLs参数越少越好,最好把页面静态化。便于得到更快的百度搜索引擎好感度,得到更快的排行。