Web基本工作原理 (2).ppt

上传人:小飞机 文档编号:6523296 上传时间:2023-11-08 格式:PPT 页数:70 大小:286.99KB
返回 下载 相关 举报
Web基本工作原理 (2).ppt_第1页
第1页 / 共70页
Web基本工作原理 (2).ppt_第2页
第2页 / 共70页
Web基本工作原理 (2).ppt_第3页
第3页 / 共70页
Web基本工作原理 (2).ppt_第4页
第4页 / 共70页
Web基本工作原理 (2).ppt_第5页
第5页 / 共70页
点击查看更多>>
资源描述

《Web基本工作原理 (2).ppt》由会员分享,可在线阅读,更多相关《Web基本工作原理 (2).ppt(70页珍藏版)》请在三一办公上搜索。

1、1,Web基本工作原理,参考书:Web Server Technology,Nancy J.Yeager,Morgan Kaufmann Publishers,1996,2,Web是Internet发展的产物,Internet-现代Internet=Web继承:TCP/IP,MIME,Hypertext,发展:HTTP,HTML,URL(Tim Berners-Lee)(为方便起见,本讲区别Internet和Web),3,什么是Internet?(如何界定Internet包含的所有计算机),所有在DNS中有登记的计算机的集合?所有具有IP地址的计算机的集合?(internet vs Inter

2、net)“公理”:总可以找到一台在Internet上的计算机那么,Internet即为从任何一台已在Internet中的计算机可以用IP地址ping到的所有计算机的集合.拨号上网的计算机算不算?,4,什么是Web?,运行在Internet之上的所有HTTP服务器软件和它们所管理的对象(及其作用)的集合不算浏览器软件?!对象:Web page/Web document,程序web document:multimedia/active,含有hyperlinks/anchors程序,动态生成web document.(dynamic document不同于active document),5,Web

3、 Document,multimedia:多种数据类型共存于一个文档中,text,image,sound,movie,.含有anchor/hyperlinks,形成hypertext:“a mesh of documents tied by hyperlinks”.hypermedia:hypertext+multimediaactive web pages:含有在浏览器方可以执行的程序,Java applet,JavaScript,6,Hypertext,通过“anchor”实现非线性文档 Peking University 1945年Vannevar Bush提出概念1960年Dougla

4、s Engelbart做出一系统(当时并没有Internet)Web是Hypertext在Internet上的应用.,7,Web文档的分类(生成时间),静态文档动态文档活动文档,8,Web多媒体文档在浏览器方的展现,浏览器事先对文档的内容一无所知,为什么能够将它显示成如文档编写者所设计的样子?可能的做法之一:让文档的编写者在文档头部给出描述.Web的设计比这稍微进了一步:Web服务器根据文件的扩展名来给出文档类型的宏观描述,这种描述借用了MIME标准.,9,MIME Multipurpose Internet Mail Extension,一个开放的多语言、多媒体电子邮件标准,规定了不同数据类

5、型的名字.Web仅用到它的一个子集IANA(Internet Assigned Numbers Authority)负责不同类型电子邮件规范的注册登记基本形式:,Type/subtype,text,message,image,audio,video,application,extensions,10,文件的扩展名和MIME类型的对应(例),.html HTML文本,text/html.txt 纯文本.ps PostScript.ra RealAudio格式的语音.gif GIF 图像,image/gif.jpeg JPEG 图像.mpeg MPEG 视频.wrl VRML 三维场景.class

6、 Java applet,这不是全部,还有许多!,11,服务器通常支持这种对应关系的设置,例如html,htm都可以是text/html设置通常在服务器的配置文件中,12,Web是“站”在TCP/IP之上的,13,Web是TCP/IP上的一个应用,从TCP/IP来看,WEB(HTTP)和TELNET,FTP,GOPHER,WAIS等没什么区别MAC地址,IP地址,服务地址(port number).Web的缺省服务地址是80.服务地址可以设置,于是我们可能有时看到http:/www.abc.edu:8800/之类.什么叫一次TCP/IP连接?,14,Web(新)技术的三个方面(1),(这里的“

7、新”指的是web从无到有的“enabling technology”,即Tim Berners-Lee的最初贡献)URL,Uniform Resource Locator.Web信息的寻址系统(address system).借用了DNS,Domain Name Service,的mapping功能http:/协助HTTP将各种信息服务统一在浏览器中ftp:/162.105.181.215-162.105.181.215:port,15,URL-Web(新)技术的三个方面(1),格式::指所用的URL方案名 意义的解释与所用方案有关。mailto:,16,HTTP,HyperText Tran

8、sfer Protocol,“The lingua franca”of Web browsers and servers.请求/响应(request-response)工作方式利用TCP/IP实现浏览器和服务器之间的连接为社么常听人们说“HTTP是无连接的协议”?(connectionless)还有说“HTTP是无状态的”?(stateless),Web(新)技术的三个方面(2),17,HTML,HyperText Markup Language,网页编写语言,向浏览器提供Web document的“排版”信息和hypermedia文档的链接关系。它使得在网页中不仅有 还有,等等Whats t

9、he difference?,Web(新)技术的三个方面(3),18,从一次“click”到一张webpage,浏览器用URL查询DNS,DNS访回IP地址.浏览器用这个IP地址建立一次TCP/IP连接.浏览器通过该连接向服务器发一HTTP请求.基于该请求的内容,服务器找到相应的文件,并根据该文件的扩展名,形成一个MIME类型的HTTP回答消息,发送给浏览器.关闭本次连接.根据消息头,浏览器按某种方式显示该文件内容.如果本文件中有之类,浏览器将随时发出新的请求(可能对不同的服务器),以获得有关内容。,19,Web服务器(软件)“很简单”!,它不懂HTML(浏览器必须懂!)它对web文件的内容一

10、概不关心(除后面要讲到的特殊情况外)它也不知道是否有别的文件指向它所管辖的文件它也不知道自己所给出的文件MIME类型正确与否,20,HTTP:请求与应答,规定了请求与应答的格式没有规定网络连接的方式(通常采用TCP/IP)纯文本,没有特殊编码,21,方法:指定对所请求对象的操作。URI,Universal Resource Identifier,标识所请求的对象。URL的一个超集(HTTP实际用的只是URL).还有所谓URN,试图将信息资源的名字和位置分别开来协议版本号其它信息(选项),HTTP请求的四个组成部分,22,method location ver.GET/funny/silly.h

11、tml HTTP/1.0user-agent:user-agent:NCSA Mosaicif-modified-since:accept:text/plainaccept:accept:text/html accept:application/postscriptaccept:accept:image/gifauthorization,HTTP请求示例,23,HTTP请求的方法,GET:返回所指对象HEAD:返回关于对象的信息,例如它已存在的时间等POST:将某种信息送给服务器/对象PUT:用一个新拷贝将对象替换DELETE:删除对象other,24,HTTP回答的四个组成部分,状态行:版本

12、号,状态码,解释200 Document follows404 Not found401 Unauthorized,等等关于返回内容的描述:MIME类型,长度,等.空格返回内容,25,HTTP回答的格式,版本 状态码 原因 HTTP/1.0 status 200 Doc follows服务器:Server:NCSA/1.4日期:Date:Tue,4 Jul,1996,19:17:05 GMT内容长度:Content-length:5280内容类型:Content-type:text/html内容语言:Last-modified:Wed,1 Jan 1996.内容编码:(这里必须空一行)最后修改

13、日期:文件的实际内容(空一行)实际信息,26,一个例子:10钟速成HTML,My first HTML documentHello world!,27,More attractiveadding headings and paragraphs,An important headingA slightly less important headingThis is the first paragraph.This is the second paragraph.,28,More attractiveadding a bit of emphsis,interesting,29,More attra

14、ctiveadding images,30,More attractive-adding links to other pages,Peking University定义锚:这是锚一所在位置引用锚:详细内容请参阅锚一详细内容请参阅锚一,31,Three kinds of lists-unordered list,the first list itemthe second list itemthe third list item,32,Three kinds of lists-ordered list,the first list itemthe second list itemthe thir

15、d list item,33,Three kinds of lists-definition list,the first termits definitionthe second termits definitionthe third termits definition,34,Adding tables in your pages,ABCDEFG 1234567 xyz a b c 1 2 3,35,几种辅助页面技术,CookieServer Push Client PullSSI(Server Side Include),36,Cookie-曲奇饼干,是从服务器发给浏览器的一种特殊形式的

16、信息,浏览器不是将这些信息显示出来,而是记录在客户机的一个特定文件中,可以实现服务器和浏览器之间的某种持续的关系。,37,Server Push,Web服务器可以向浏览器返回一个“回答序列”,序列中的每个元素可以看作是一个独立的HTML文本,在浏览器方一个接一个显示,从而造成一种动态效果。这种序列使用一种特殊的MIME类型,multipart/mixed,或multipart/x-mixed-replaced,来说明。值得注意的是,HTTP连接一直在保持着,直到服务器知道自己已结束发送数据并发送一个结束信号,或者客户端中断连接。适合小文件,短时间间隔,例如小图像的动画。,38,Client P

17、ull,服务器可以通过CGI脚本返回一种类型为“Refresh”的HTTP应答,或者在HTML文本中的部分用标记模拟这种应答,从而是浏览器每隔一定时间自动发出一次新的网页请求。,39,例:浏览器重新下载网页,Demo Client Pull Technology Insert your text or graphics here 这将引起浏览器每隔5秒重新下载一次该网页,40,例:网页交替出现,Doc1.html则这两张网页将每隔30秒交替出现。上面的META标记相当于HTTP回答中有 Refresh:30;RL=http:/./doc2.html”的效果。,Doc2.html 则这两张网页将

18、每隔30秒交替出现。上面的META标记相当于HTTP回答中有 Refresh:30;RL=http:/./doc1.html”的效果。,41,SSI(Server Side Include),SSI技术使服务器能够在网页中插入数据。这样的网页通常以.shtml作为扩展名,对应的MIME类型text/x-server-parsed-html将它施加于HTML文档时,能够使文档增加一些实时功能,显示时间、查询、或更新数据库,发送电子邮件等。,42,SSI,SSI与HTTP服务器密切相关,并不是所有的服务器都能支持SSI。SSI记号的基本格式为:-Tag:echo,include,fsize,fla

19、stmod,exec,config,email,if,goto,label,break,43,44,关于Java,Java的历史和现状与Java有关的“形容词”simple,object-oriented,distributed,compiled/interpreted,robust,secure,architecture neutral,high-performance,multithreaded,and dynamic不把Java仅当作是一种语言Java语言,Java应用程序开发界面(APIs),Java虚拟机、执行环境Java的未来,45,Java语言:从21天到12小时!,对象模型Ja

20、va的类和对象(一般,抽象,interface)继承机制(单继承,多实现)名空间及访问规则package,class/object,member,局部变量public,private,protected,default其它异常、线程、Applet,等,46,Java系统环境一览:运行机制,Javabytecodemove locallyor throughnetwork,Class LoaderBytecodeVerifier,Java classlibraries,Operating System,Hardware,JavaCompiler,Javasource,Javabytecode,J

21、avaInterpreter,Just-in-timeCompiler,Runtime System,Compile-time,Runtime,JavaVirtualMachine,47,第一个Java应用程序,在当前目录中,建文件firstjava.javapublic class firstjava public static void main(String argv)System.out.println(“Hi,“+argv0);cdir javac firstjava.javacdir java firstjava“my first Java program runs!”(1)类名和

22、文件名的一致性;(2)命令行参数的获取;(3)字符串的拼接;(4)System.out.println()的含义,48,Java APIs:Java体系最活跃的部分,一个Framework由多个API组成;一个API可能含有多个package;一个package中有多个class.Java AWT-窗口及界面APIJDBC-数据库操作API,Java Framework for Commerce的一部分JavaBean-编写构件的APIRMI-远程方法调用API.,49,Java的历史(1),工作起始于1990年,旨在开发用于为家用电器编程的语言和环境(Sun 公司,James Gosling

23、).语言最初的名字为Oak.1991年起在Green,VOD项目中得到首次应用,系统在应用中得到培育和完善.1994年World Wide Web兴起.1995年4月宣布Java和HotJava.1995年5月Netscape向Sun购买了Java使用权,将其包含到Netscape 2.0中.,50,Java的历史(2),1995年11月推出JDK 1.0 beta版1995年12月Business Week称Java是推动Web/Internet发展的一种突破性力量,同时也认为“Java as a business“还不清楚.从1995年12月到1996年4月,许多计算机公司纷纷表示对Jav

24、a的认同,宣布要将Java运行环境作为其操作系统的一部分.Apple HP Hitachi IBM Microsoft Novell SGI SunSoft SCO Tandem.,51,Java的现状,1996,97,98年,JavaOne大会,5000,10000人200多本书,几十万程序员JDK 1.0,1.1,1.2(语言、虚拟机、基本类库)Java Foundation Class(JFC,Javasoft)Application Foundation Class(AFC,Microsoft)Internet Foundation Class(IFC,Netscape)Persona

25、l Java,Embedded Java不少研究努力旨在提高Java的运行速度,HPJava.,52,Java Foundation Class(JFC),Frameworks,APIs,Language,bytecode,JDK 1.2,Peerless Components,3D API,accessibility,Pluggable look&feel,Drag&Drop,Java总览,53,与Java有关的“形容词”(1),Java:A simple,object-oriented,distributed,compiled/interpreted,robust,secure,archi

26、tecture neutral,high-performance,multithreaded,and dynamic language.,54,与Java有关的“形容词”(2),Simple(与C,C+,Fortran等相比)“小”语言没有struct,union,goto,#define 没有多继承容易学?Object-oriented程序完全由类构成,写程序就是描述类程序中几乎所有的东西都是“对象”,55,与Java有关的“形容词”(3),DistributedAppletURL类便利了从WEB上读取文件RMI支持远程方法调用底层网络支持,sockets,datagramsCompiled

27、/interpreted源程序被编译成bytecode,类文件bytecode被Java虚拟机(JVM)解释执行,56,与Java有关的“形容词”(4),Robust-程序一旦调好,一般不会因为数据的不同出错.编译时严格的类型检查没有指针,动态检查数组界自动废料收集防止了“memory leak”.优越的异常处理方式,try/catch/finally,57,与Java有关的“形容词”(5),Secure存储保护(no pointer,array bounds checking,)bytecode验证(运行时,stack的一致性)“砂箱模型”(sandbox),限制某些程序的能力数字签名,58

28、,与Java有关的“形容词”(6),Architecture neutral-“Write once,run anywhere!”bytecode与平台无关(PC,Mac,UNIX)对基本数据类型格式的严格规定High-performance,though not as fast as C对交互式界面及网络应用足够好与图形、串有关的操作直接在VM实现Native method,JIT compiler.,59,与Java有关的“形容词”(7),Multithreaded在语言级提供对“线程”的支持(自然也有类一级的支持)Dynamic类的动态加载,java.lang.ClassLoader运行

29、时进行动态方法查找(dynamic method lookup),60,Dynamics(continued),class/say,file name ABC.javapublic void g()System.out.println(“This is from A”);class B extends A public void g()System.out.println(“This is from B”);class C extends B,61,Dynamics(continued),class D/in different compilation unit D.java public s

30、tatic void main(String argv)C x=new C();x.g();/What output to be expected?What if ABC.java is modified and recompiled(but D.java is not recompiled)so that class C also contains a method g()producing“This is from C”?,62,Java应用程序开发界面(APIs),java.beans(JavaBean,Java的构件技术)java.lang.reflect,JARjava.sql(JD

31、BC,连接数据库)java.rmi(RMI,远程方法调用)java.awt(支持GUI设计)java.awt.datatransfer,java.awt.event,java.awt.image,java.awt.peer,63,Java虚拟机,一个程序(ANSI C),以Java类文件为数据类文件的格式big endian 数据表示方式以栈(stack)为基础的体系结构指令的操作数来自于栈操作结果放回栈栈的大小在编译时静态决定,64,Java的未来,JFC的不断完善高性能Java(HPJava)Java用于科学和工程计算学习程序设计的首选语言?取代C/C+?会了Java的中学生还愿意在大学学

32、C吗?Java的生命期?走Ada之路?,65,Java技术:语言、API、虚拟机,66,JDK系统环境(win95/dos),C:,java,bin,javac,java,appletviewer,lib,classes.zip,用户类文件所在目录myclasses,当前目录 cdir,让PATH 包含 javabinSET CLASSPATH=。;C:myclasses,67,第一个Java应用程序,在当前目录中,建文件firstjava.javapublic class firstjava public static void main(String argv)System.out.pri

33、ntln(“Hi,“+argv0);cdir javac firstjava.javacdir java firstjava“my first Java program runs!”(1)类名和文件名的一致性;(2)命令行参数的获取;(3)字符串的拼接;(4)System.out.println()的含义,68,第一个Java applet,在当前目录中,建文件firstapplet.javaimport java.applet.Applet;import java.awt.*;public class firstapplet extends Applet public void paint(

34、Graphics g)String cheers;cheers=getParameter(“what”);g.drawString(“Hi,“+cheers,);,69,第一个Java applet(续),小程序是对了,但它需要在浏览器(或appletviewer)中才能运行;这蕴含着它的执行必须由一个HTML文本引导.建文件firstapplet.html,cdir javac firstapplet.javacdir appletviewer firstapplet.html每一个applet都是java.applet.Applet的子类写applet的核心是对Applet中的方法做override注意HTML文本中的参数与applet中有关量的对应,70,进一步作业,安装JDK,并成功运行上述程序和Applet例子,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号