程序是否在服务器端运行,这个是判断网页属不属于动态网页的重要标志。动态的是需要服务器解释的,静态的放到什么地方都能运行。
在服务器端运行的程序、网页、组件,属于动态网页,它们会随不同客户、不同时间,返回不同的网页,例如ASP、PHP、JSP、ASP.net、CGI等。
运行于客户端的程序、网页、插件、组件,属于静态网页,例如html页、Flash、JavaScript、VBScript等等,它们是永远不变的。
静态网页和动态网页各有特点,网站采用动态网页还是静态网页主要取决于网站的功能需求和网站内容的多少,如果网站功能比较简单,内容更新量不是很大,采用纯静态网页的方式会更简单,反之一般要采用动态网页技术来实现。
一、静态网页
静态页面,是指网页中只有HTML标记。静态网页一经制成,内容就不会再变化,不管何人何时访问,显示的内容都是一样的。如果要修改网页的内容,就必须修改其源代码,然后重新上传到服务器上。
对于静态网页,用户可以直接双击打开,看到的效果与访问服务器是相同的,即服务器参加与否对页面的内容是不会有影响的。这是因为在用户访问该网页之前,网页的内容就已经确定,无论用户何时、以怎样的方式访问,网页的内容都不会再改变。
静态网页每个网页都有一个固定的URL,静态网页的网址形式通常为:www.example.com/eg/eg.htm,网页URL以.htm、.html、.shtml等常见形式为后缀,而不含有“?”。
网页内容一经发布到网站服务器上,无论是否有用户访问,每个静态网页的内容都是保存在网站服务器上的,也就是说,静态网页是实实在在保存在服务器上的文件,每个网页都是一个独立的文件。
在静态网页上,也可以出现各种动态的效果,如.GIF格式的动画、FLASH、滚动字母等,尽管在这种网页上使用这些对象后可以使网页动感十足,但是,这种网页不包含在服务器端运行的任何脚本,网页上的每一行代码都是由网页设计人员预先编写好后,放置到Web服务器上的,在发送到客户端的浏览器上后不再发生任何变化。所以说,这些“动态效果”只是视觉上的,与常说的动态网页是不同的概念。
在静态Web程序中,客户端使用Web浏览器(IE、FireFox等)经过网络(Network)连接到服务器上,使用HTTP协议发起一个请求(Request),告诉服务器我现在需要得到哪个页面,所有的请求交给Web服务器,之后WEB服务器根据用户的需要,从文件系统(存放了所有静态页面的磁盘)取出内容。之后通过Web服务器返回给客户端,客户端接收到内容之后经过浏览器渲染解析,得到显示的效果。
为了让静态web页面显示更加好看,使用javascript/VBScript/ajax(AJAX全称“Asynchronous Javascript And XML”,即异步JavaScript和XML,是指一种创建交互式网页应用的网页开发技术。)但是这些特效都是在客户端上借助于浏览器展现给用户的,所以在服务器上本身并没有任何的变化。
静态网页没有数据库的支持,在网站制作和维护方面工作量较大,因此当网站信息量很大时完全依靠静态网页制作方式比较困难。
由于现在的web页面中,大量使用JS,导致浏览器打开页面,就会占用大量的内存,服务端的压力是减轻了,但压力转移到了客户端。
静态页面的工作机制:
1.使用HTML编写静态页面,发布到WEB服务器端;
2.客户端通过浏览器请求该静态页面;
3.Web服务器根据请求定位该静态页面;
4.该静态页面以HTML流的形式返回客户端;
5.客户端浏览器解释HTML流,并显示为WEB页面。
优点:
相比动态网页,静态网页速度最快。不仅仅是加载速度最快,而且不需要从数据库里面提取数据,速度快的同时,也不会对服务器产生压力。
静态网页的内容相对稳定,因此容易被搜索引擎检索。
缺点:
由于数据都是储存在HTML里面,所以导致文件非常大。并且最严重的问题是,更改源代码必须全部更改,而不能改一个地方,全站静态页面就自动更改了。如果是大型网站有比较多的数据,那会占用大量的服务器空间,每次添加内容都会生存新的HTML页面。如果不是专业人士维护比较麻烦。
二、动态网页
动态页面是指,网页中不仅仅包含HTML代码,还含有程序代码,可以根据客户端输入不同内容来显示不同的结果。动态网页相对复杂,不能直接双击打开。
动态WEB中,程序依然使用客户端和服务端,客户端依然使用浏览器(IE、FireFox等),通过网络(Network)连接到服务器上,使用HTTP协议发起请求(Request),现在的所有请求都先经过一个WEB Server来处理。
如果客户端请求的是静态资源(*.htm或者是*.htm),则将请求直接转交给WEB服务器,之后WEB服务器从文件系统中取出内容,发送回客户端浏览器进行解析执行。
如果客户端请求的是动态资源(*.jsp、*.asp/*.aspx、*.php),则先将请求转交给WEB Container(WEB容器),在WEB Container中连接数据库,从数据库中取出数据等一系列操作后动态拼凑页面的展示内容,拼凑页面的展示内容后,把所有的展示内容交给WEB服务器,之后通过WEB服务器将内容发送回客户端浏览器进行解析执行。
动态网页以数据库技术为基础(静态网页以HTML为基础),可以大大降低网站维护的工作量。
采用动态网页技术的网站可以实现更多的功能,如用户注册、用户登录、在线调查、用户管理、订单管理等等。
动态网页实际上并不是独立存在于服务器上的网页文件,只有当用户请求时服务器才返回一个完整的网页。
动态网页中的"?"对搜索引擎检索存在一定的问题,搜索引擎一般不可能从一个网站的数据库中访问全部网页,或者出于技术方面的考虑,搜索蜘蛛不去抓取网址中"?"后面的内容,因此采用动态网页的网站在进行搜索引擎推广时需要做一定的技术处理才能适应搜索引擎的要求。
动态页面的工作机制:
1.使用动态WEB开发技术编写WEB应用程序,即动态页面,并发布到WEB服务器端;
2.客户端通过浏览器请求该动态页面;
3.WEB服务器定位该WEB应用程序;
4.WEB服务器根据客户端的请求,对WEB应用程序进行编译或解释,并生成HTML流;
5.将生成的HTML以流的形式返回给客户端;
6.客户端浏览器解释HTML流,并显示为WEB页面。
再进一步深入分析动态web的访问过程:
浏览器访问web时,看似是直接访问的jsp页面,其实是,最先到达的地方是服务器,服务器创建好req和resp对象后再给jsp页面使用。在jsp中完成设置字符集和取得表单参数后再调用servlet,完成业务处理。然后返回到jsp,jsp就会生成相应的html页面。该页面会返回到服务器,再由服务器,通过response对象返回给客户端。
优点:
空间使用量非常小,一般几万条数据的网站,使用动态页面,可能只有几M的文件大小,而使用静态页面少则十几M,多则几十M。因为数据是从数据库里面调用而来,所以如果要更改某些数值,直接更改数据库,那么所有的动态页面,就会自动更新了。这一点相比静态页面好处就大很多了。
缺点:
用户访问速度较慢,为什么会访问动态页面较慢呢。这个问题我们就必须从动态页面的访问机制说起了,其实我们的服务器上面有一个解释引擎,当用户访问的时候,这个解释引擎就会把动态页面翻译为静态页面,这样大家就能够在浏览器里面查看源码了。而这个源码就是解释引擎翻译以后的源码。除访问速度较慢以外,动态页面的数据是从数据库里面调用过来的,如果访问人数非常多,数据库的压力就会非常大的,不过现在动态程序都是使用了缓存技术。但是总体来讲,动态页面对于服务器的压力比较大一点。同时动态页面的网站一般对服务器高求要比较高一些,同时访问的人越多也会造成服务器压力越大。
三、总结
- 所谓"静态"指的是网页内容"固定不变",当浏览者通过互联网的HTTP协议向Web服务器请求替换网页内容时,服务器仅仅是将原来已经设计好的静态HTML文档传送给用户的流量器,其页面的内容使用仅仅是标准的HTML代码,静态网页文件通常以htm、html等为后缀名。
- 所谓"动态",并不是指在网页中放几个带动画的GIF或者SWF图片和动画,而是指用户在浏览此网页时,可以根据本身的需求在网页中进行操作,而网页根据用户的输入,能够产生相应的结果来响应用户,那样的网页才叫动态网页,动态网页文件通常以.asp,.php等为后缀。
静态网页是网站建设的基础,静态网页和动态网页之间也并不矛盾,为了网站适应搜索引擎检索的需要,即使采用动态网站技术,也可以将网页内容转化为静态网页发布。
四、伪静态页面
伪静态页面定义:“假”静态页面,实质上是动态页面。
伪静态是相对真实静态来讲的。通常我们为了增强搜索引擎的友好面。都将文章内容生成静态页面。但是有的朋友为了实时的显示一些信息。或者还想运用动态脚本解决一些问题。不能用静态的方式来展示网站内容。但是这就损失了对搜索引擎的友好面。怎么样在两者之间找个中间方法呢,这就产生了伪静态技术。就是展示出来的是以.html一类的静态页面形式,但其实是用ASP一类的动态脚本来处理的。
优点:
相比静态页面而言,并没有速度上的明显提升,因为是“假”静态页面,其实还是一个动态页面,也是同样需要翻译为静态页面的。最大的好处就是让搜索引擎(Search Engine)把自己的网页当做静态页面来处理。
缺点:
顾名思义,“伪静态”就是“假静态”,搜索引擎不会把他当做静态页面来处理,这只是我们靠经验考逻辑去分析的,并不一定准确。或许搜索引擎直接把它认为是动态页面。
伪静态与静态页面的区别:
从URL结构以及页面名称看,伪静态和静态页面是一样的。伪静态的页面后缀可以是html、htm 或者是目录格式伪静态只是改变了URL的表现形式,实际上还是动态页面静态页面可以节省服务器资源,而伪静态严格说是增加服务器资源消耗的总结。在SEO方面,伪静态和静态页面的功能是相同的;但是伪静态本质上还是动态页面,所以消耗资源是和动态页面一样的,而且因为Rewrite服务器还需要消耗额外的资源。
五、动态HTML
我们把含有动态特效的页面叫做DHTML(Dynamic HTML的缩写,又叫动态HTML),它是近几年来网络发展进程中出现的一种特别技术引用概念,主要是客户端脚本语言、CSS(Cascading StyleSheets层叠样式表)和文档对象模型DOM(Document ObjectModules)三种技术的综合应用。动态HTML能独立在客户端(浏览者自己的计算机上)处理页面元素,改变其版面、内容和位置,并把结果不断提供给网页浏览者,这些操作都是在客户端完成的,不需要向服务器请求让服务器来处理。这意味着动态HTML的Web页面里面含有程序,会对用户的操作有响应,使其产生动态效果,从而使网页表达能力更加的丰富,即动态HTML能自动变化。
动态HTML与静态网页、动态网页的区别:
静态网页上面没有可动的网页元素;动态HTML是网页元素形式上的动,指对我们人为的操作有一定的反应;而动态网页是网页元素内容上的动,它可以根据我们访问者不同请求,生成相应的HTML并传输到用户的浏览器中。
参考来源:
http://www.admin5.com/article/20130130/486822.shtml
http://www.intertid.com/school/2013/590437.shtml
http://www.cnblogs.com/bluesungz/p/5955170.html
http://blog.sina.com.cn/s/blog_a56b49460101gagg.html