1,动态网页与静态网页的最主要的区别?
——针对页面的访问请求,Web服务器在不同的条件下 返回给客户端的网页内容是否总是相同,例如:当浏览器访问Web服务器上某一个资源路劲的 时候,如果Web服务器返回的网页内容,总是要包含有Web服务器的当前时间,因为时间是不断变化的,所以服务器在不同时刻返回给客户端的网页内容也是在不断变化的,客户端从服务器端得到的响应结果就属于动态网页;
浏览器最终的显示效果,总是由它所获得的内容来决定的,当浏览器访问Web服务器上面的某个Web页面的时候,它所接收到的内容就是Web服务器通过网络传送过来的一个连续的字符流;浏览器并不关心Web服务器是如何创建这些字符流的,它仅仅是把这些字符流当做文档的内容来处理;
动态网页:Web服务器端创建的内容动态变化的网页;
动态Html页面:客户端脚本程序所实现的具有动态视觉效果的网页;
虽然动态Html页面也可以在浏览器中显示出动态效果,并能与用户进行交互,但是这种动态视觉效果,是浏览器程序执行的结果,并不是网页的源文件的内容改编以后的结果;
例子:
dynamic.html:
运行结果:(每刷新一次页面,就会显示当前时间;它是依靠浏览器程序执行js代码来达到这种动态改变的视觉效果的)
dynamic.jsp:
运行结果:
运行第1次:
运行第2次
Web服务器在不同时刻或不同条件下,返回给客户端的网页文档内容会发生变化,浏览器窗口中显示的时间就是Web服务上的时间我们所说的动态网页就是指这种Web服务器在不同的时刻或不同的条件下返回给客户端的网页内容有可能发生变化的网页
2,动态网页程序与引擎
Web服务器的作用在与时时接受浏览器的请求,并将响应结果回送给浏览器;对于静态Html文件内容的访问请求Web服务器可以直接从文件系统中读取文件的内容后返回给浏览器,但是对于那些要依据某些条件去动态创建内容的访问请求,Web服务器本身是不具备有这种处理能力的,需要专门的Web服务器程序模块来进行
处理;所以动态网页内容的创建过程包含两个步骤:
(1) 首先使用某种编程语言编写出相应的动态网页程序;
(2) 然后由一个专门的Web服务器程序模块来解释执行该动态网页程序;
在动态网页程序的代码中可以完成各种程序逻辑控制、获取客户端传递的数据、对数据库进行操作、创建输出内容等功能,Web程序开发就是指使用某种编程语言来编写完成上述功能的动态网页程序;
动态网页程序需要有一个专门的Web服务器程序模块来解释执行,
专门解释和执行某种动态网页程序的Web服务器程序模块习惯上被称为引擎,譬如ASP引擎、Servlet引擎,JSP引擎等等;
只有引擎会与浏览器直接进行信息交换,动态网页程序不直接与浏览器进行信息交换,动态网页程序只与引擎进行信息交换,由引擎将浏览器的信息传递给动态网页程序和将动态网页程序生成的结果回送给浏览器。
如下图:浏览器、引擎、API和动态网页程序之间的关系
3,总结:
(2)只有引擎会与浏览器直接进行信息交换,动态网页程序不直接与浏览器进行信息交换,动态网页程序只与引擎进行信息交换,由引擎将浏览器的信息传递给动态网页程序和将动态网页程序生成的结果回送给浏览器。