




已阅读5页,还剩65页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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 Internet) “公理”:总可以找到一台在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 Document,multimedia: 多种数据类型共存于一个文档中, text, image, sound, movie, . 含有anchor/hyperlinks, 形成hypertext: “a mesh of documents tied by hyperlinks”. hypermedia:hypertext + multimedia active web pages: 含有在浏览器方可以执行的程序,Java applet, JavaScript, ,6,Hypertext,通过“anchor”实现非线性文档 Peking University 1945年Vannevar Bush提出概念 1960年Douglas Engelbart做出一系统 (当时并没有Internet) Web是Hypertext在Internet上的应用.,7,Web文档的分类(生成时间),静态文档 动态文档 活动文档,8,Web多媒体文档在浏览器方的展现,浏览器事先对文档的内容一无所知, 为什么能够将它显示成如文档编写者所设计的样子? 可能的做法之一: 让文档的编写者在文档头部给出描述. Web的设计比这稍微进了一步: Web服务器根据文件的扩展名来给出文档类型的宏观描述, 这种描述借用了MIME标准.,9,MIME Multipurpose Internet Mail Extension,一个开放的多语言、多媒体电子邮件标准, 规定了不同数据类型的名字. 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 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. 服务地址可以设置, 于是我们可能有时看到:8800/之类. 什么叫一次TCP/IP连接 ?,14,Web(新)技术的三个方面(1),(这里的“新”指的是web从无到有的“enabling technology”,即Tim Berners-Lee的最初贡献) URL, Uniform Resource Locator. Web信息的寻址系统(address system). 借用了DNS, Domain Name Service, 的mapping功能 15 协助HTTP将各种信息服务统一在浏览器中 15 15:port,15,URL- Web(新)技术的三个方面(1),格式: : 指所用的URL方案名 意义的解释与所用方案有关。 mailto:,16,HTTP, HyperText Transfer 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 the difference ?,Web(新)技术的三个方面(3),18,从一次“click”到一张webpage,浏览器用URL查询DNS, DNS访回IP地址. 浏览器用这个IP地址建立一次TCP/IP连接. 浏览器通过该连接向服务器发一HTTP请求. 基于该请求的内容, 服务器找到相应的文件, 并根据该文件的扩展名, 形成一个MIME类型的HTTP回答消息, 发送给浏览器. 关闭本次连接. 根据消息头, 浏览器按某种方式显示该文件内容. 如果本文件中有之类,浏览器将随时发出新的请求(可能对不同的服务器),以获得有关内容。,19,Web服务器(软件)“很简单”!,它不懂HTML(浏览器必须懂!) 它对web文件的内容一概不关心(除后面要讲到的特殊情况外) 它也不知道是否有别的文件指向它所管辖的文件 它也不知道自己所给出的文件MIME类型正确与否,20,HTTP: 请求与应答,规定了请求与应答的格式 没有规定网络连接的方式(通常采用TCP/IP) 纯文本,没有特殊编码,21,方法:指定对所请求对象的操作。 URI, Universal Resource Identifier, 标识所请求的对象。URL的一个超集(HTTP实际用的只是URL). 还有所谓URN, 试图将信息资源的名字和位置分别开来 协议版本号 其它信息(选项),HTTP请求的四个组成部分,22,method location ver. GET /funny/silly.html HTTP/1.0 user-agent: user-agent: NCSA Mosaic if-modified-since: accept: text/plain accept: accept: text/html accept: application/postscript accept: accept: image/gif authorization,HTTP请求示例,23,HTTP请求的方法,GET:返回所指对象 HEAD:返回关于对象的信息,例如它已存在的时间等 POST:将某种信息送给服务器/对象 PUT:用一个新拷贝将对象替换 DELETE:删除对象 other,24,HTTP回答的四个组成部分,状态行:版本号,状态码,解释 200 Document follows 404 Not found 401 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. 内容编码: (这里必须空一行) 最后修改日期: 文件的实际内容 (空一行) 实际信息,26,一个例子:10钟速成HTML, My first HTML document Hello world! ,27,More attractiveadding headings and paragraphs,An important heading A slightly less important heading This is the first paragraph. This is the second paragraph.,28,More attractiveadding a bit of emphsis,interesting ,29,More attractiveadding images,30,More attractive-adding links to other pages,Peking University 定义锚: 这是锚一所在位置 引用锚: 详细内容请参阅锚一 详细内容请参阅锚一,31,Three kinds of lists-unordered list, the first list item the second list item the third list item ,32,Three kinds of lists-ordered list, the first list item the second list item the third list item ,33,Three kinds of lists-definition list, the first term its definition the second term its definition the third term its definition ,34,Adding tables in your pages, ABCDEFG 1234567 xyz a b c 1 2 3 ,35,几种辅助页面技术,Cookie Server Push Client Pull SSI(Server Side Include),36,Cookie-曲奇饼干,是从服务器发给浏览器的一种特殊形式的信息,浏览器不是将这些信息显示出来,而是记录在客户机的一个特定文件中,可以实现服务器和浏览器之间的某种持续的关系。,37,Server Push,Web服务器可以向浏览器返回一个“回答序列”,序列中的每个元素可以看作是一个独立的HTML文本,在浏览器方一个接一个显示,从而造成一种动态效果。这种序列使用一种特殊的MIME类型,multipart/mixed,或multipart/x-mixed-replaced,来说明。值得注意的是,HTTP连接一直在保持着,直到服务器知道自己已结束发送数据并发送一个结束信号,或者客户端中断连接。适合小文件,短时间间隔,例如小图像的动画。,38,Client Pull,服务器可以通过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 则这两张网页将每隔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,flastmod,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小时 !,对象模型 Java的类和对象(一般, 抽象, interface) 继承机制 (单继承, 多实现) 名空间及访问规则 package, class/object, member, 局部变量 public, private, protected, default 其它 异常、线程、Applet, 等,46,Java系统环境一览: 运行机制,Java bytecode move locally or through network,Class Loader Bytecode Verifier,Java class libraries,Operating System,Hardware,Java Compiler,Java source,Java bytecode,Java Interpreter,Just-in-time Compiler,Runtime System,Compile-time,Runtime,Java Virtual Machine,47,第一个Java应用程序,在当前目录中, 建文件firstjava.java public class firstjava public static void main (String argv) System.out.println(“Hi, “+argv0); cdir javac firstjava.java cdir java firstjava “my first Java program runs !” (1) 类名和文件名的一致性; (2) 命令行参数的获取; (3) 字符串的拼接; (4) System.out.println()的含义,48,Java APIs: Java体系最活跃的部分,一个Framework由多个API组成;一个API可能含有多个package;一个package中有多个class. Java AWT - 窗口及界面API JDBC - 数据库操作API, Java Framework for Commerce的一部分 JavaBean - 编写构件的API RMI - 远程方法调用API .,49,Java的历史 (1),工作起始于1990年, 旨在开发用于为家用电器编程的语言和环境 (Sun 公司, James Gosling). 语言最初的名字为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月, 许多计算机公司纷纷表示对Java的认同, 宣布要将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) Personal 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, architecture neutral, high-performance, multithreaded, and dynamic language.,54,与Java有关的“形容词”(2),Simple (与C, C+, Fortran等相比) “小”语言 没有struct, union, goto, #define 没有多继承 容易学 ? Object-oriented 程序完全由类构成, 写程序就是描述类 程序中几乎所有的东西都是“对象”,55,与Java有关的“形容词”(3),Distributed Applet URL类便利了从WEB上读取文件 RMI支持远程方法调用 底层网络支持, sockets, datagrams Compiled/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,与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 运行时进行动态方法查找(dynamic method lookup),60,Dynamics (continued),class / say, file name ABC.java public 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 static 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, JAR java.sql (JDBC, 连接数据库) 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的不断
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度沙发厂厂长聘用合同范本
- 2025版公路运输合同服务质量保障协议
- 2025版外汇市场交易执行顾问服务合同专业
- 2025年度房地产抵押权转让合同模板
- 2025照明灯具行业合作研发合同范本
- 2025版全新协议离婚财产放弃及共同子女财产租赁合同
- 2025年仓储服务与仓储设施租赁及仓储管理合同
- 2025民法典宣传周·旅游合同法律风险评估合同
- 2025年度新能源产业第三方担保服务合同
- 2025年大学生实习安全协议汇编及法律风险提示
- 初中道德与法治教研组工作计划
- 地基沉降量计算-地基沉降自动计算表格
- 部编版(2024版)七年级历史上册第1课《远古时期的人类活动》精美课件
- 2024年云南省昆明市官渡区、呈贡区小学六年级第二学期小升初数学试卷含解析
- 《睡眠质量下降人群治未病干预方案》
- 2024年《企业战略管理》期末考试复习题库(含答案)
- 家具厂封边技能培训
- 中华民族共同体概论课件第十一讲中华一家与中华民族格局底定(清前中期)课件
- DBJ50-T-386-2021 建筑施工现场扬尘控制标准
- 中国流行音乐的发展史
- 《中国成人肥厚型心肌病诊断与治疗指南-2023》更新要点解读
评论
0/150
提交评论