web静态和动态的区别
⼀、静态web页⾯:
1、在静态Web程序中,客户端使⽤Web浏览器(IE、FireFox等)经过⽹络(Network)连接到服务器上,使⽤HTTP协议发起⼀个请求(Request),告诉服务器我现在需要得到哪个页⾯,所有的请求交给Web服务器,之后WEB服务器根据⽤户的需要,从⽂件系统(存放了所有静态页⾯的磁盘)取出内容。之后通过Web服务器返回给客户端,客户端接收到内容之后经过浏览器渲染解析,得到显⽰的效果。
2、为了让静态web页⾯显⽰更加好看,使⽤javascript/VBScript/ajax(AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指⼀种创建交互式⽹页应⽤的⽹页开发技术。)但是这些特效都是在客户端上借助于浏览器展现给⽤户的,所以在服务器上本⾝并没有任何的变化。
3、静态web⽆法连接数据库;
4、静态web资源开发技术:HTML;
5、由于现在的web页⾯中,⼤量使⽤JS,导致浏览器打开页⾯,就会占⽤⼤量的内存,服务端的压⼒是减轻了,但压⼒转移到了客户端。
⼆、动态web页⾯:
动态WEB中,程序依然使⽤客户端和服务端,客户端依然使⽤浏览器(IE、FireFox等),通过⽹络(Network)连接到服务器上,使⽤HTTP 协议发起请求(Request),现在的所有请求都先经过⼀个WEB Server来处理。
如果客户端请求的是静态资源(*.htm或者是*.htm),则将请求直接转交给WEB服务器,之后WEB服务器从⽂件系统中取出内容,发送回客户端浏览器进⾏解析执⾏。
如果客户端请求的是动态资源(*.jsp、*.asp/*.aspx、*.php),则先将请求转交给WEB Container(WEB容器),在WEB Container中连接数据库,从数据库中取出数据等⼀系列操作后动态拼凑页⾯的展⽰内容,拼凑页⾯的展⽰内容后,把所有的展⽰内容交给WEB服务器,之后通过WEB服务器将内容发送回客户端浏览器进⾏解析执⾏。
jsp和html哪个更好再进⼀步深⼊分析动态web的访问过程:浏览器访问web时,看似是直接访问的jsp页⾯,其实是,最先到达的地⽅是服务器,服务器创建好req和resp对象后再给jsp页⾯使⽤。在jsp中完成设置字符集和取得表单参数后再调⽤servlet,完成业务处理。然后返回到jsp,jsp就会⽣成相应的html页⾯。该页⾯会返回到服务器,再由服务器,通过response对象返回给客户端。
为什么需要web服务器?(web server)
1)不管什么web资源,想被远程计算机访问,都必须有⼀个与之对应的⽹络通信程序,当⽤户来访问时,这个⽹络通信程序读取web资源数据,并把数据发送给来访者。
2)WEB服务器就是这样⼀个程序,它⽤于完成底层⽹络通迅,处理http协议。使⽤这些服务器,We应⽤的开发者只需要关注web资源怎么编写,⽽不需要关⼼资源如何发送到客户端⼿中,从⽽极⼤的减轻了开发者的开发⼯作量。
常⽤动态web资源开发技术:JSP/Servlet、ASP、PHP等。
三、关于两者区别的简单直接的描述
1、静态页⾯就是设计者把页⾯上所有东西都设定好、做死了,然后放上去,不管是谁在任何时候看到的页⾯内容都是⼀样的,⼀成不变(除⾮⼿动修改页⾯内容)。静态html页⾯⽂件,可以直接⽤本地的浏览器打开。⽐如:
file:///Users/Phil/Documents/DevOps/HBuilderProjects/testJSP/index.html。
2、动态页⾯的内容⼀般都是依靠服务器端的程序来⽣成的,不同⼈、不同时候访问页⾯,显⽰的内容都可能不同。⽹页设计者在写好服务器端的页⾯程序后,不需要⼿⼯控制,页⾯内容会按照页⾯程序的安排⾃动更改变换。
3、html是w3c规范的⼀种⽹页书写格式,是⼀种统⼀协议语⾔,静态⽹页。我们上⽹看的⽹页都是⼤部分都是基于html语⾔的。jsp是⼀种基于动态语⾔,jsp可以实现html的所有任务,
4、HTML(Hypertext Markup Language)⽂本标记语⾔,它是静态页⾯,和JavaScript⼀样解释性语⾔,为什么说是解释性语⾔呢?因为,只要你有⼀个浏览器那么它就可以正常显⽰出来,⽽不需要指定的编译⼯具,只需在TXT⽂档中写上HTML标记就可以正常显⽰。
JSP(Java Server Page)是Java服务端的页⾯,所以它是动态的,它是需要经过JDK编译后把内容发给客户端去显⽰,我们都知道,Java ⽂件编译后会产⽣⼀个class⽂件,最终执⾏的就是这个class⽂件,5、JSP的前⾝是servlet;6、html和jsp的表头不⼀样,这个是JSP的头“<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>”在表头中有编码格式和倒⼊包等。也是很好区分的,在jsp中⽤<%%>就可以写Java代码了,⽽html没有<%%>。
7、,不认识jsp或者asp什么什么的,但是有时候界⾯需要逻辑控制,所以我们就⽤相应的技术来实现,这样⽐较⽅便。⽽jsp在后台通过服务器解析为相应的html,然后在供浏览器识别显⽰。例如
<%
if(flag == a){
<label>a<label>
}else {
<label>b<label>
}
%>
服务器在读取到这段代码后,根据相应的业务逻辑,编译成相应的servlet,再由servlet输出到页⾯(输出的就是html)。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论