`
zy116494718
  • 浏览: 476822 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

动态页面,静态页面,伪静态页面的区别

    博客分类:
  • SSH
 
阅读更多

我们经常会看到 , 在地址栏里有一些网址特别长,而且还带有 “?”, 这样的链接一般是动态链接,其所对应的页面就是动态页面
在技术上,动态页面具有这些特征:

1 ,动态页面是以 ASP PHP JSP ASP.net Perl 、或 CGI 等编程语言制作的;

2 ,动态页面实际上并不是独立存在于服务器上的网页文件,只有当用户请求时服务器才返回一个完整的网页;

3 ,动态页面上的内容存在于数据库中,根据用户发出的不同请求,其提供个性化的网页内容;

4 ,动态页面内容不是存在于页面上,而是在数据库中,从而大大降低网站维护的工作量;

5 ,采用动态网页技术的网站可以实现更多的功能,如用户注册、用户登录、在线调查、用户管理、订单管理等等; 静态页面 则无法实现这些功能。

SEO 的角度,动态页面有这些弊端:

1 ,由于动态页面的生成是采用数据库的内容,所以网页内容主题的永恒性不能保证。这样造成了搜索引擎的阅读困难,即搜索引擎抓不住一个永恒的主题,因此不能输入到搜索引擎中的缓存( cache )中。

2 ,动态网址里往往包含 和很多参数,这让目前技术条件下的搜索引擎在判断和识别造成了很大的困难。

3 ,动态链接,存在一个信任问题,用户以及搜索引擎都无法确定这个页面会一直存在。

搜索引擎对于静态链接更友好,所以,把动态网址进行 URL 重写优化 使其静态化,是一个非常重要的 SEO 技巧。 SEO 十万个为什么 是全站动态的,目前这么合理和简洁规范的 URL 就是经过 URL 重写( URL-rewrite )技术处理的。

 

动态页面和静态页面的 seo 优缺点

 

网页的 url 地址可以分为动态和静态,动态页面并非实际存在于服务器当中,根据用户发出的请求提供相应的内容,对服务器运作来说压力较小,静态页面的地址是真实存在的,路径当中不含有? &% 之类的变量符号,所以对搜索引擎来事更友好更容易得到信任,为了追求动态页面和静态页面的优点又回避缺点产生了 伪静态 ,在动态页面的基础上通过 url 重写技术把转移参数插入到 url 地址中达到迷惑蜘蛛的作用。

那么看似百利而无一害的伪静态页面是否就是最好的呢?结合动态页面和静态页面的优缺点对比看看。

 

动态页面

在 服务器端运行的程序组件和网页都属于动态网页,根据用户的要求返回页面,交互性很好,但是存在着很大的安全隐患,动态网站页面的信息必须从数据库中读取, 每打开一个页面造成一次读取命令,如果人数过多会增加服务器的工作量,从而影响这个网站的运行速度,动态网站的变量链接很容易造成死循环,使蜘蛛深陷其 中,所以对搜索引擎很不友好。

 

静态页面

静态页面实际存在于服务器内,无需经过编译就能直接加载到用户浏览器上显示出来,中间省略的脚本计算和读取数据库提高了访问的速度,缺点同样并存与优点之中,由于静态页面存放在服务器中药占据空间内存,可以想象如果某论坛有 10 万帖,每个帖的大小 100K ,如果全部作为静态页面存在于服务器中就要占据 10G 的大小,不包括存储计算中造成的空间浪费,所以相当消耗空间资源。

 

伪静态页面

那么伪静态页面是否就能结合动态页面和静态页面的优点,既能解决搜索引擎友好的问题,又能解决静态页面空间资源消耗大的问题几乎完美的存在,其实不然,浏览器访问伪静态页面时是通过正则判断,而这个分辨的过程由 cpu 完成,导致 cpu 使用率上升出现超负荷,影响网站的正常服务就是伪静态的最大弊病。

由此可以看出每种形式都是有长有短的,怎么合理的使用各种形式完全取决于站长对网站规模的计划和类型的定位。

 

伪静态还有的2点好处:1)防止某些黑客恶意攻击。有些大网站采用不同的技术开发不同功能的页面。而把拓展名改掉,让黑客无法确认此页面用的技术是什么,从而就无从下手。  2) 方便访问者使用。访问者不是程序员,他们不明白什么是.jsp,.php.aspx,他们只知道URL。所以统一把拓展名拿掉,或者同意把拓展名换为html,htm,有利于用户的使用。用户可以知道现在在你网站的位置,如何通过输入URL到某一页面

 

针对 seo 优化动态网页如何优化

 

动态生成的网页:   

对于那些动态生成网页,我们这些实际的访问者可以通过肉眼看到。但对于大多数搜索引擎的蜘蛛程序却往往是不可见的,这也就是动态网页很难被搜索引擎的 SPIDER 检索的原因。因而,要想让你的动态网页能够出现在搜索引擎的搜索结果中,只要保证你的网站内容对搜索引擎是可见的,即搜索引擎的 Spider 程序能够看到你网站的内容就可以了 .

所谓动态网页一般指的是采用 ASP PHP ColdFusion CGI 等程序动态生成的页面,该网页中的大部分内容来自与网站相连的数据库。在网络空间中并不存在这个页面,只有接到用户的访问要求后才生成并传输到用户的浏览器中。而且由于访问者能够实时得到他们想要的数据,动态网页往往容易给人留下深刻的印象。此外,动态网页还具有容易维护和更新 的优点。例如,对于一个新产品或价格的调整。网站管理员只要对数据库做一下简单的改动就可以了,根本不需要去修改每个单独的静态页面。

  我们可以看出,从用户角度来考虑,动态网页确实非常棒。但如果在搜索引擎的角度来看,结论却不同了。

动态网页的问题所在

问题就出在这些动态网页在网络空间中并不是实际存在的,只有当用户在变量区中输入一个值以后它们才会生成 。而我们大家也都知道,搜索引擎的 Spider 再聪明,它也只是一个搜索程序,它们无法象真正的人那样选择变量并输入数值。亦可将查询编入主页上的一个链接中,使得该链接成为一个预先定义的网站目录的查询。用户可在一个搜索表格中键入查询条件来查询,通常动态脚本需要某些信息来返回页面内容,最常见的如 Cookie 数据, SessionID 或一个环境变量。但对搜索引擎的 Spider 程序来说,它们压根不可能知道去使用你的搜索功能,或者该问什么问题。就是因为如此, Spider 对网站的检索往往会在一个动态站点前不得不止步。此外,在动态页的 URL 中包含了问号 (?) 和百分号 (%) 。还有一些符号诸如 & % + $ 等在一个动态页的 URL 中也经常能看到。这样的 URL 被称作“环境变量” (querystring) 。不过大多数 SPIDER 都无法解读符号“ ? ”后的字符 。很显然,由于这个 URL 并不实际存在,所以它们一无所获。因此,如果你的整个网站或网站上有大部分网页都是采用动态来生成的,为了使 SPIDER 易于读取你网站上的内容,你需要对网站做一定的修改。还有一些搜索引擎在对页面进行检索时往往也会拒绝对 cgi-bin 目录下的静态页面 ( 即被保存成静态页面的动态页 )URL 进行检索   

搜索引擎为何不读取符号“ ? ”后的内容:   

搜索引擎的 SPIDER 不愿意读取放在 cgi-bin 目录下的网页,或是 URL 中包含了符号“ ? ”的字符。其原因就在于,如果在 CGI 中提供了“无穷”数量的 URL ,那么 SPIDER 往往就会因为对这些“无穷”网页的检索而被牢牢套住,陷入死循环。这就是所谓的蜘蛛陷阱 (spidertraps) 。数据库程序对 SPIDER 亦有可能创建一个与此类似的情形。因而为避开可能的陷阱, Spider 对于那些带有符号“ ? ”的 URL 中的“ ? ”之后的字符一概不予读取。      倘若 Spider 被你的服务器套住,不只是对 Spider 本身不妙, Spider 对你网站页面的重复访问请求也会导致你的服务器系统彻底瘫痪。

 

动态链接的静态化

动态链接的静态化:

动态页面的链接是动态产生的,在返回页面内容之前,动态脚本需要一些信息,如 cookie data session id 或字符串。动态页面是基于数据库驱动的,通过脚本语言动态产生的页面。动态网站中有模板,内容一般存放于数据库中。要浏览页面时,模板调用数据库中的内容,参数被添加到 URL , 这种复合型 URL 告诉了模板要装载的具体内容。浏览者在动态网站中通过使用查询字符串发现信息,这种查询字符串被键入表单中或被预先编码在主页上的链接中。

蜘蛛不清楚如何使用查询功能,若蜘蛛用没有查询字符串的不完整请求向服务器提交,服务器会要求信息完整地址,这是蜘蛛不能理解的,从而可能陷入了一种死循环 中。搜索引擎难以处理动态网站,因不能提供产生页面需要的信息,会陷入到动态页面服务器中而不能自拔,蜘蛛和服务器陷入无限循环之中,会导致服务器瘫痪。因此,动态网页内容对大多数搜索引擎蜘蛛是不可见的,大多数蜘蛛反感动态页面,在识别出这种 URL 后,会敬而远之。不会检索它。因此需要把这些有价值的内容转换成随蜘蛛可见的形态。

这种复合型 URLs 是搜索引擎难以检索的,因搜索引擎不知道定义内容的参数。参数越多,越难以被检索到。为此,需要克服这种不完整地址问题。有两种解决方案:

搜索引擎友好的动态页面,修改 URLs ,参数越少越好,最好把页面静态化。

 

伪静态页面生成方法:

 

ProvideBlogListAction.java:
 
    userName4URL = s.getUserName();//这3个分别是URL后面需要传递的参数
    blogId4URL = s.getBlogId();
    articleId4URL = s.getArticleId();
                 s.setArticleURL(com.trs.blog.util.UrlUtil.getArticleURL(userName4URL,blogId4URL,articleId4URL));


UrlUtil.java:
    /**
     * 获得博客文章的URL
     * @param userName 用户名
     * @param BlogId  博客id
     * @param aid  文章id
     * @return  文章的URL
     */
    public static String getArticleURL(String userName, int blogId, int aid){
    	
    		URLMap u = URLMap.valueOf(userName,blogId,aid);    		
        	return "http://localhost:8080/blog/a/"+u.toString()+".html";
   
    	
    }

URLMap.java:
	public final static URLMap valueOf(String sUserName, int iParentId, int iId) {
		URLMap map = new URLMap();
		map.m_iVersion = DEFAULT_VERSION;
		map.m_sUserName = sUserName;
		map.m_iType = “1”;
		map.m_iParentId = iParentId;
		map.m_iId = iId;
		map.m_iCheckSum = caculateCheckSum(sUserName.hashCode(), iParentId, iId);
		return map;
	}

	private final static int caculateCheckSum(int hash, int pid, int aid) {
		return (hash + (hash >> 13)) | (pid - (pid >> 12)) & (aid ^ (aid >> 11));
	}

 

   上面的代码是公司的伪静态页面实现办法,在文章列表中把文章的连接如/blog/articleInfo.do?userName=zy&&blogId=1&&articleId=1转换成blog/a/0101002526B90C548A833416.html这种URL,这样蜘蛛就可以进而爬进去看相应的内容了,因为文章列表中的每一篇文章都是不同的静态URL。

 

   静态与伪静态的比较:

 

   第一、速度,对于速度而说,静态页面比伪静态好,因为静态页面是实实在在存在于服务器上的页面。在用户向服务器发出请求时,可以直接直接调用。然而伪静态,其实是一个动态页面,只是用一个技术或手段,请动态页面中的“?”等一些符号用蜘蛛可以很内容识别出来的字母给代替了。所以像这种静态页面,要向服务器发出请求时,还要多出一个功能就是转化功能,如何同时请求过多,会加大服务器的负荷。   

 

   第二、容量,对于容量而言,因为静态页面是实实在在存在于服务器中,因此会占用一定的空间,如何文件过多,占用的空间就多。然而伪静态就可以避免这一点,因为伪静态是将动态的URL给转换成静态,实际在服务器上是不存在的。      第三、搜索引擎友好性。对于静态URL页面,实实在在存在于服务器上,当搜索引擎收录之后,URL是不会改变的,哪有用户访问时,也不会出问题。然而如果是伪静态页面,服务器伪静态组件不出问题,这个URL就没有问题,如何伪静态组件出问题了,哪么当搜索引擎收录这个URL就会出错,如果出现错误过多,会让搜索引擎讨厌你网站,所以在试用伪静态页面时,伪静态组件,一定不要出错。

 

 

ps:网站如何优化可以参考:http://xiongzaiqiren.blog.163.com/blog/static/129287185201111595253458/

分享到:
评论
1 楼 swearyd7 2013-01-04  
mark。

相关推荐

    ASP.NET动态页面静态化代码

    - **伪静态**:通过URL重写技术,让动态URL看起来像静态URL,实际仍处理为动态请求。 4. **URLRewriter工具**: - **IIS URLRewrite**:微软提供的一个IIS扩展,用于重写和路由HTTP请求,实现动态URL到静态URL的...

    HTM页面伪静态 Demo

    这里的“HTM页面伪静态 Demo”是一个示例,旨在帮助学习者理解如何将动态的HTM(HTML)页面转换为看起来像是静态的URL形式。下面,我们将详细探讨这个主题。 首先,静态页面是指内容不随用户交互或时间变化而改变的...

    网页静态化,伪静态页面

    网页静态化和伪静态页面是ASP.NET开发中提高网站性能和搜索引擎优化(SEO)的重要技术。在现代Web开发中,动态网页虽然功能强大,但在处理大量用户请求时,可能会增加服务器负担,降低页面加载速度。为了解决这个...

    动态页面静态化汇总--页面静态化方案

    在静态化过程中,URLRewrite可以将动态URL转换为伪静态格式,使得用户和搜索引擎看到的是看似静态的URL,而实际上这些请求仍被转发到动态处理程序。通过这种方式,可以提升用户体验,同时利于SEO优化。 4. **JSP+...

    java JSP页面静态化总结_动态页面变为静态页面以减少访问数据库的次数提高速度.zip

    - **URLRewrite实现URL伪静态化**:通过URLRewrite工具,可以改变URL的展示形式,使其看起来像静态页面,但实际仍由动态页面处理。这种方法并不真正生成静态文件,但在用户看来,URL更简洁,更像静态页面。 4. **...

    伪静态页面生成技术|静态页面|生成技术

    伪静态页面生成技术是网站优化的重要手段,它结合了动态网页的灵活性和静态网页的优势,有助于提升SEO排名和用户体验。通过URL重写、服务器端转换或前端路由等方式,我们可以轻松实现伪静态效果。在实际应用中,合理...

    页面伪静态案例

    总结来说,页面伪静态是现代网站设计中的重要技术,它结合了动态网页的灵活性和静态网页的优势,对SEO和用户体验都有显著的改善。在实际应用中,需要结合各种技术手段,如URL重写、缓存策略等,来实现高效且友好的伪...

    discuz伪静态配置方法

    伪静态技术能够将动态URL转换为静态化的HTML链接,使得网页看起来像静态页面,但实际上仍然保持动态网站的特性。 标题"Discuz伪静态配置方法"主要涉及到以下知识点: 1. **伪静态概念**:伪静态是一种技术手段,...

    ASP.NET页面静态化,伪静态化

    而伪静态化则是通过URL重写技术,使得动态URL看起来像静态页面的URL,从而达到优化用户体验和搜索引擎友好性的目的。 **URL重写** URL重写是ASP.NET中的一种机制,允许开发者改变URL的结构,以提供更友好的、更具...

    php伪静态方法

    3. 加快页面加载速度:虽然伪静态页面本质上仍然是动态生成,但可以减少服务器处理时间,提升用户体验。 四、注意事项 尽管伪静态有很多好处,但也需要注意一些问题: 1. 配置正确:确保服务器配置正确,避免URL...

    网站页面静态优化,提升页面浏览速度和搜索引擎友好程度

    网站静态优化是提升网页加载速度和搜索引擎友好度的重要策略,主要涉及前端页面的处理,包括静态化或伪静态化处理。这一技术对于提高用户体验和SEO(搜索引擎优化)效果具有显著作用。 1. **URL Rewrite 引擎**:...

    ECSHOP 301重定向带动态页面跳转到静态页面插件

    因此,许多网站管理员会选择将动态页面转换为静态页面或伪静态页面,以改善搜索引擎的爬取和索引。ECSHOP 301重定向插件就是专门针对这个问题设计的,帮助用户在网站进行伪静态设置后,正确地配置301重定向,确保...

    DZX3.5伪静态规则文件

    在IT行业中,伪静态是一种将动态网页转换为静态URL的技术,主要是为了提高网站的SEO(搜索引擎优化)性能和用户体验。DZX3.5是某款基于PHP开发的网站内容管理系统,可能类似于Discuz! X系列,它允许管理员通过配置伪...

    asp页面实现伪静态代码

    伪静态,就是通过技术手段让动态页面的URL看起来像静态页面的URL,通常以".html"或".htm"结尾,但实际上还是执行的动态脚本。 在ASP中实现伪静态,主要涉及到URL重写技术。描述中提到“不需要任何组件”,这可能...

    伪静态的源码 伪静态 伪静态 伪静态 需要的来

    然而,需要注意的是,伪静态并不等于真正的静态页面,其本质仍然是动态生成内容。如果网站访问量过大,仍可能导致服务器负载增加。因此,在实现伪静态的同时,还需要考虑服务器性能和数据库优化。 在使用这个压缩包...

    aspx页面伪静态化的配置

    ASPX页面伪静态化是一种常见的优化技术,它主要用于提高网站的搜索引擎友好度和用户体验。在ASP.NET环境中,通过将动态的ASPX页面转换为看似静态的HTML文件路径,可以达到这个目的。这样做不仅可以减少服务器的负载...

    伪静态插件 asp伪静态

    此时,伪静态技术应运而生,它通过重写URL,使动态网址看起来像静态页面的URL,但实际仍然是动态处理。 ASP伪静态实现通常涉及到IIS服务器的URL重写功能,这可以通过安装微软的URL Rewrite模块来完成。安装后,我们...

    jsp静态化和伪静态化

    为了提高效率和用户体验,人们提出了页面静态化和伪静态化技术。 **页面静态化**是指将动态生成的HTML页面保存为静态文件,之后的用户请求不再通过服务器动态生成,而是直接读取这些静态文件,从而减轻服务器负担,...

    伪静态页面和真静态页面html可同时存在

    配置伪静态html时,真静态html无法访问,解决伪静态页面和真静态页面html可同时存在

    伪静态的实现及伪静态的意义.ASP.NET

    相比之下,伪静态则通过服务器端的重写规则,在不生成实际静态文件的情况下,实现类似静态页面的效果,降低了对硬盘的依赖,同时也减少了I/O操作的风险。 然而,伪静态并非没有弊端。其主要缺点在于CPU资源的消耗。...

Global site tag (gtag.js) - Google Analytics