Web基本工作原理_第1页
Web基本工作原理_第2页
Web基本工作原理_第3页
Web基本工作原理_第4页
Web基本工作原理_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Web根本工作原理

参考书:WebServerTechnology,NancyJ.Yeager,MorganKaufmannPublishers,19961Web是Internet进展的产物Internet-->现代Internet=Web继承:TCP/IP,MIME,Hypertext,…进展:HTTP,HTML,URL(TimBerners-Lee)(为便利起见,本讲区分Internet和Web)2什么是Internet?(如何界定Internet包含的全部计算机〕全部在DNS中有登记的计算机的集合?全部具有IP地址的计算机的集合?〔internetvsInternet)“公理”:总可以找到一台在Internet上的计算机.那么,Internet即为从任何一台已在Internet中的计算机可以用IP地址ping到的全部计算机的集合.拨号上网的计算机算不算?3什么是Web?运行在Internet之上的全部HTTP效劳器软件和它们所治理的对象〔及其作用〕的集合不算扫瞄器软件?!对象:Webpage/Webdocument,程序webdocument:multimedia/active,含有hyperlinks/anchors程序,动态生成webdocument.(dynamicdocument不同于activedocument)4WebDocumentmultimedia:多种数据类型共存于一个文档中,text,image,sound,movie,....含有anchor/hyperlinks,形成hypertext:“ameshofdocumentstiedbyhyperlinks”.hypermedia:hypertext+multimediaactivewebpages:含有在扫瞄器方可以执行的程序,Javaapplet,JavaScript,…5Hypertext通过“anchor”实现非线性文档<AHREF=“://”>PekingUniversity</A>1945年VannevarBush提出概念1960年DouglasEngelbart做出一系统(当时并没有Internet)Web是Hypertext在Internet上的应用.6Web文档的分类〔生成时间〕静态文档动态文档活动文档7Web多媒体文档在扫瞄器方的呈现扫瞄器事先对文档的内容一无所知,为什么能够将它显示成如文档编写者所设计的样子?可能的做法之一:让文档的编写者在文档头部给出描述.Web的设计比这略微进了一步:Web效劳器依据文件的扩展名来给出文档类型的宏观描述,这种描述借用了MIME标准.8MIME—MultipurposeInternetMailExtension一个开放的多语言、多媒体电子邮件标准,规定了不同数据类型的名字.Web仅用到它的一个子集IANA〔InternetAssignedNumbersAuthority〕负责不同类型电子邮件标准的注册登记根本形式:Type/subtypetextmessageimageaudiovideoapplicationextensions9文件的扩展名和MIME类型的对应(例).htmlHTML文本,text/html.txt纯文本.psPostScript.raRealAudio格式的语音.gifGIF图像,image/gif.jpegJPEG图像.mpegMPEG视频.wrlVRML三维场景.classJavaapplet这不是全部,还有很多!10效劳器通常支持这种对应关系的设置例如html,htm都可以是text/html设置通常在效劳器的配置文件中11Web是“站”在TCP/IP之上的12Web是TCP/IP上的一个应用从TCP/IP来看,WEB(HTTP)和TELNET,FTP,GOPHER,WAIS等没什么区分MAC地址,IP地址,效劳地址(portnumber).Web的缺省效劳地址是80.效劳地址可以设置,于是我们可能有时看到://:8800/之类.什么叫一次TCP/IP连接?13Web〔新〕技术的三个方面(1)〔这里的“新”指的是web从无到有的“enablingtechnology”,即TimBerners-Lee的最初奉献)URL,UniformResourceLocator.Web信息的寻址系统〔addresssystem〕.借用了DNS,DomainNameService,的mapping功能://帮助HTTP将各种信息效劳统一在扫瞄器中15-->15:port14URL--Web〔新〕技术的三个方面(1)格式:

<scheme>:<scheme-specific-part>

<scheme>指所用的URL方案名

<scheme-specific-part>意义的解释与所用方案有关。mailto:wangsq@15HTTP,HyperTextTransferProtocol,“Thelinguafranca”ofWebbrowsersandservers.恳求/响应〔request-response〕工作方式利用TCP/IP实现扫瞄器和效劳器之间的连接为社么常听人们说“HTTP是无连接的协议”?(connectionless)还有说“HTTP是无状态的”?〔stateless〕Web〔新〕技术的三个方面(2)16HTML,HyperTextMarkupLanguage,网页编写语言,向扫瞄器供给Webdocument的“排版”信息和hypermedia文档的链接关系。它使得在网页中不仅有<AHREF=“://…”>…</A>还有<IMGSRC=“://…/nice.gif”>,等等What’sthedifference?Web〔新〕技术的三个方面(3)17从一次“click”到一张webpage扫瞄器用URL查询DNS,DNS访回IP地址.扫瞄器用这个IP地址建立一次TCP/IP连接.扫瞄器通过该连接向效劳器发一HTTP恳求.基于该恳求的内容,效劳器找到相应的文件,并依据该文件的扩展名,形成一个MIME类型的HTTP答复消息,发送给扫瞄器.关闭本次连接.依据消息头,扫瞄器按某种方式显示该文件内容.假设本文件中有<…SRC=url>之类,扫瞄器将随时发出新的恳求〔可能对不同的效劳器〕,以获得有关内容。18Web效劳器(软件)“很简洁”!它不懂HTML〔扫瞄器必需懂!〕它对web文件的内容一概不关心〔除后面要讲到的特殊状况外〕它也不知道是否有别的文件指向它所管辖的文件它也不知道自己所给出的文件MIME类型正确与否19HTTP:恳求与应答规定了恳求与应答的格式没有规定网络连接的方式〔通常承受TCP/IP〕纯文本,没有特殊编码20方法:指定对所恳求对象的操作。URI,UniversalResourceIdentifier,标识所恳求的对象。URL的一个超集〔HTTP实际用的只是URL).[还有所谓URN,试图将信息资源的名字和位置分别开来]协议版本号其它信息〔选项〕HTTP恳求的四个组成局部21methodlocationver.GET

/funny/silly.htmlHTTP/1.0user-agent:user-agent:NCSAMosaicif-modified-since:accept:text/plainaccept:accept:text/html…accept:application/postscriptaccept:accept:image/gifauthorizationHTTP恳求例如22HTTP恳求的方法GET:返回所指对象HEAD:返回关于对象的信息,例如它已存在的时间等POST:将某种信息送给效劳器/对象PUT:用一个新拷贝将对象替换DELETE:删除对象other23HTTP答复的四个组成局部状态行:版本号,状态码,解释200Documentfollows404Notfound401Unauthorized,等等关于返回内容的描述:MIME类型,长度,等.空格返回内容24HTTP答复的格式版本状态码缘由HTTP/1.0status200Docfollows效劳器:Server:NCSA/1.4日期:Date:Tue,4Jul,1996,19:17:05GMT内容长度:Content-length:5280内容类型:Content-type:text/html内容语言:Last-modified:Wed,1Jan1996.内容编码:(这里必需空一行)最终修改日期:文件的实际内容(空一行)实际信息25一个例子:10钟速成HTML<!DOCTYPEHTMLPUBLIC“-//W3C//DTDHTML4.0//EN“><HTML><HEAD><TITLE>MyfirstHTMLdocument</TITLE></HEAD><BODY><P>Helloworld!</BODY></HTML>26Moreattractive—addingheadingsandparagraphs<h1>Animportantheading</h1><h2>Aslightlylessimportantheading</h2><p>Thisisthefirstparagraph.</p><p>Thisisthesecondparagraph.</p>

27Moreattractive—addingabitofemphsis<em>interesting</em>28Moreattractive—addingimages<imgsrc=“cs.gif”width=500height=88><imgsrc=“:///cs.gif”width=500height=88alt=“CSTD”>29Moreattractive-addinglinkstootherpages<ahref=“://”>PekingUniversity</a>定义锚:<aname=”anchor-one”>这是锚一所在位置</a>引用锚:具体内容请参阅<ahref=”./one.html#anchor-one”>锚一</a>具体内容请参阅<ahref=”#anchor-one”>锚一</a>30Threekindsoflists-unorderedlist<ul>

<li>thefirstlistitem</li>

<li>thesecondlistitem</li>

<li>thethirdlistitem</li>

</ul>31Threekindsoflists-orderedlist<ol>

<li>thefirstlistitem</li>

<li>thesecondlistitem</li>

<li>thethirdlistitem</li>

</ol>

32Threekindsoflists-definitionlist<dl><dt>thefirstterm</dt><dd>itsdefinition</dd><dt>thesecondterm</dt><dd>itsdefinition</dd><dt>thethirdterm</dt><dd>itsdefinition</dd></dl>33Addingtablesinyourpages<tableborder=“1“><tr><thcolspan=2>ABCDEFG<thcolspan=2>1234567</tr><tr><tdrowspan=2>xyz<td>a<td>b<td>c</tr><tr><td>1<td>2<td>3</tr></table>34几种帮助页面技术CookieServerPushClientPullSSI(ServerSideInclude)35Cookie-曲奇饼干是从效劳器发给扫瞄器的一种特殊形式的信息,扫瞄器不是将这些信息显示出来,而是记录在客户机的一个特定文件中,可以实现效劳器和扫瞄器之间的某种持续的关系。36ServerPushWeb效劳器可以向扫瞄器返回一个“答复序列”,序列中的每个元素可以看作是一个独立的HTML文本,在扫瞄器方一个接一个显示,从而造成一种动态效果。这种序列使用一种特殊的MIME类型,multipart/mixed,或multipart/x-mixed-replaced,来说明。值得留意的是,HTTP连接始终在保持着,直到效劳器知道自己已完毕发送数据并发送一个完毕信号,或者客户端中断连接。适合小文件,短时间间隔,例如小图像的动画。37ClientPull效劳器可以通过CGI脚本返回一种类型为“Refresh”的HTTP应答,或者在HTML文本中的<HEAD>局部用<META>标记模拟这种应答,从而是扫瞄器每隔确定时间自动发出一次新的网页恳求。38例:扫瞄器重新下载网页<HTML><<HEAD><METAHTTP-EQUIV=”Refresh”CONTENT=5><TITLE>DemoClientPullTechnology</TITLE></HEAD><BODY><P>Insertyourtextorgraphicshere</BODY></HTML>这将引起扫瞄器每隔5秒重新下载一次该网页39例:网页交替消逝Doc1.html<METAHTTP-EQUIV=“Refresh”CONTENT=30;URL=://.../doc2.html”>则这两张网页将每隔30秒交替消逝。上面的META标记相当于HTTP答复中有Refresh:30;RL=://.../doc2.html”的效果。Doc2.html<METAHTTP-EQUIV=“Refresh”CONTENT=30;URL=://.../doc1.html”>则这两张网页将每隔30秒交替消逝。上面的META标记相当于HTTP答复中有Refresh:30;RL=://.../doc1.html”的效果。40SSI(ServerSideInclude)SSI技术使效劳器能够在网页中插入数据。这样的网页通常以.shtml作为扩展名,对应的MIME类型text/x-server-parsed-html将它施加于HTML文档时,能够使文档增加一些实时功能,显示时间、查询、或更新数据库,发送电子邮件等。41SSISSI与HTTP效劳器亲切相关,并不是全部的效劳器都能支持SSI。SSI记号的根本格式为:<!--#<tag><variableset>-->Tag:echo,include,fsize,flastmod,exec,config,email,if,goto,label,break

4243关于JavaJava的历史和现状与Java有关的“形容词”simple,object-oriented,distributed,compiled/interpreted,robust,secure,architectureneutral,high-performance,multithreaded,anddynamic不把Java仅当作是一种语言Java语言,Java应用程序开发界面(APIs),Java虚拟机、执行环境Java的将来44Java语言:从21天到12小时!对象模型Java的类和对象〔一般,抽象,interface)继承机制(单继承,多实现)名空间及访问规章package,class/object,member,局部变量public,private,protected,default其它特殊、线程、Applet,等45Java系统环境一览:运行机制JavabytecodemovelocallyorthroughnetworkClassLoaderBytecodeVerifierJavaclasslibrariesOperatingSystemHardwareJavaCompilerJavasourceJavabytecodeJavaInterpreterJust-in-timeCompilerRuntimeSystemCompile-timeRuntimeJavaVirtualMachine46第一个Java应用程序在当前名目中,建文件firstjava.javapublicclassfirstjava{publicstaticvoidmain(Stringargv[]){System.out.println(“Hi,“+argv[0]);}}cdir>javacfirstjava.javacdir>javafirstjava“myfirstJavaprogramruns!”(1)类名和文件名的全都性;(2)命令行参数的猎取;(3)字符串的拼接;(4)System.out.println的含义47JavaAPIs:Java体系最活泼的局部一个Framework由多个API组成;一个API可能含有多个package;一个package中有多个class.JavaAWT--窗口及界面APIJDBC--数据库操作API,JavaFrameworkforCommerce的一局部JavaBean--编写构件的APIRMI--远程方法调用API…...48Java的历史(1)工作起始于1990年,旨在开发用于为家用电器编程的语言和环境(Sun公司,JamesGosling).语言最初的名字为Oak.1991年起在Green,VOD工程中得到首次应用,系统在应用中得到培育和完善.1994年WorldWideWeb兴起.1995年4月宣布Java和HotJava.1995年5月Netscape向Sun购置了Java使用权,将其包含到Netscape2.0中.49Java的历史(2)1995年11月推出JDK1.0beta版1995年12月BusinessWeek称Java是推动Web/Internet进展的一种突破性力气,同时也认为“Javaasabusiness“还不清晰.从1995年12月到1996年4月,很多计算机公司纷纷表示对Java的认同,宣布要将Java运行环境作为其操作系统的一局部.AppleHPHitachiIBMMicrosoftNovellSGISunSoftSCOTandem.50Java的现状1996,97,98年,JavaOne大会,5000,10000人200多本书,几十万程序员JDK1.0,1.1,1.2(语言、虚拟机、根本类库〕JavaFoundationClass〔JFC,Javasoft〕ApplicationFoundationClass〔AFC,Microsoft〕InternetFoundationClass(IFC,Netscape)PersonalJava,EmbeddedJava不少争论努力旨在提高Java的运行速度,HPJava.51JavaFoundationClass(JFC)FrameworksAPIsLanguagebytecodeJDK1.2PeerlessComponents3DAPIaccessibilityPluggablelook&feelDrag&DropJava总览52与Java有关的“形容词”(1)

Java:Asimple,object-oriented,distributed,compiled/interpreted,robust,secure,architectureneutral,high-performance,multithreaded,anddynamiclanguage.53与Java有关的“形容词”(2)Simple(与C,C++,Fortran等相比)“小”语言没有struct,union,goto,#define…没有多继承简洁学?Object-oriented程序完全由类构成,写程序就是描述类程序中几乎全部的东西都是“对象”54与Java有关的“形容词”(3)DistributedAppletURL类便利了从WEB上读取文件RMI支持远程方法调用底层网络支持,sockets,datagramsCompiled/interpreted源程序被编译成bytecode,类文件bytecode被Java虚拟机(JVM)解释执行55与Java有关的“形容词”(4)Robust--程序一旦调好,一般不会由于数据的不同出错.编译时严格的类型检查没有指针,动态检查数组界自动废料收集防止了“memoryleak”.优越的特殊处理方式,try/catch/finally56与Java有关的“形容词”(5)Secure存储疼惜(nopointer,arrayboundschecking,…)bytecode验证(运行时,stack的全都性)“砂箱模型”(sandbox),限制某些程序的力气数字签名57与Java有关的“形容词”(6)Architectureneutral--“Writeonce,runanywhere!”bytecode与平台无关(PC,Mac,UNIX)对根本数据类型格式的严格规定High-performance,thoughnotasfastasC对交互式界面及网络应用足够好与图形、串有关的操作直接在VM实现Nativemethod,JITcompiler.58与Java有关的“形容词”(7)Multithreaded在语言级供给对“线程”的支持(自然也有类一级的支持)Dynamic类的动态加载,java.lang.ClassLoader运行时进展动态方法查找(dynamicmethodlookup)59Dynamics(continued)classA{//say,filenameABC.javapublicvoidg{System.out.println(“ThisisfromA”);}}classBextendsA{publicvoidg{System.out.println(“ThisisfromB”);}classCextendsB{}60Dynamics(continued)classD{//indifferentcompilationunitD.javapublicstaticvoidmain(String[]argv){Cx=newC;x.g;//Whatoutputtobeexpected?}}WhatifABC.javaismodifiedandrecompiled(butD.javaisnotrecompiled)sothatclassCalsocontainsamethodgproducing“ThisisfromC”?61Java应用程序开发界面(APIs)java.beans(JavaBean,Java的构件技术)java.lang.reflect,JARjava.sql(JDBC,连接数据库)java.rmi(RMI,远程方法调用)java.awt(支持GUI设计)java.awt.datatransfer,java.awt.event,java.awt.image,java.awt.peer62Java虚拟机一个程序(ANSIC),以Java类文件为数据类文件的格式bigendian数据表示方式以栈(stack)为根底的体系构造指令的操作数来自于栈操作结果放回栈栈的大小在编译时静态准备63Java的将来JFC的不断完善高性能Java(HPJava)—Java用于科学

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论