第3章网络与网络应用协议3.1计算机网络概述3.2网络协议及网络体系结构3.3应用层协议1:DNS域名服务器3.4应用层协议2:TELNET、FTP、SMTP3.5应用层协议3:万维网参考文献:计算机网络,AndrewS.Tanenbaum著,熊桂喜等译,清华大学出版社13.5应用层协议3:万维网•万维网•万维网(:WorldWideWeb,也称Web网):是因特网中的信息以超文本形式展现的系统,由网页组成是一个构筑在Internet之上的分布式信息储藏库是一种特殊的结构框架,能访问遍布在因特网上数以千计的机器上的链接文件是一个分布式的客户/服务器服务,其中的客户用浏览器就能够使用服务器提供的服务万维网必须解决的问题怎样标志分布在整个因特网上的万维网文档?用何协议实现万维网上各种超链的链接?怎样使各种万维网文档都能在因特网上的各种计算机上显示出来,同时使用户清楚地知道在什么地方存在着超链?33.5.1万维网技术架构概述万维网技术架构(三个基本概念):URL(Uniform/UniversalResourceLocator,统一资源定位符)信息位置:Internet标识定位分布在整个Internet上的万维网页面HTTP(HyperTextTransferProtocol,超文本传输协议)信息传输实现页面的传输和链接所采用的应用层协议。HTML(HypertextMarkupLanguage,超文本标记语言)信息表现:用HTML制作及显示Web页面,使不同结构的计算机理解所有的Web页面4客户Web页面服务器请求响应3.5.1万维网技术架构概述2.工作模式采用客户/服务器方式提供服务客户:运行在用户主机上的浏览器程序服务器:存放万维网页面的主机运行的服务器程序工作过程:浏览器向服务器程序发出请求服务器程序向客户程序送回客户所要的万维网页面53.5.1万维网技术架构概述6HTML描述了每个网页的内容WEB浏览器WEB浏览器WEB浏览器TCP/IPHTTPWEB网页公共网关接口Script程序数据库CGI定义外在应用如何与WEB服务器互动控制程序HTTPFTPSMTPHTMLJavaJavaScript...浏览器客户程序解释程序3.5.1万维网技术架构概述2.工作模式(1)Web客户-浏览器功能:运行浏览器程序显示Web页面捕捉鼠标事件浏览器程序组成:一些客户程序(协议)一个控制程序:管理客户程序和解释程序,是浏览器的核心部件一些解释程序(页面解释)73.5.1万维网技术架构概述浏览器文档类型:HTML文档普通文本,所有浏览器程序内置解释HTML解释程序PDF文档GIF格式的图片JPEG格式的照片MP3格式的音频其它百种文件类型(如:word,excel,rmvb,flash等)83.5.1万维网技术架构概述浏览器解释方法:返回页面时,附加页面文档类型信息显示时,扩展浏览器功能:插件:用户下载,存储在客户机磁盘,浏览器应用时读取执行辅助应用程序:独立运行,如显示PDF的软件AcrobatReader带来麻烦:安全漏洞,病毒,解决办法,IE配置,用户有选择运行93.5.1万维网技术架构概述浏览器工作流程例:当选中连接时:1.浏览器确定URL2.浏览器向DNS询问发送一个请求,要求获取文件/home/index.html6.服务器发送文件/home/index.html7.TCP连接被释放8.浏览器显示/home/index.html中的所有文本9.浏览器取回并显示该文件中的所有图片浏览器下方显示正在执行的步骤,以便了解网络连接状态102.工作模式Web服务器功能存储或生成Web页面响应浏览器请求服务器端工作流程:确定被请求的Web页面的名字鉴别客户的身份,针对客户的身份,执行服务控制针对Web页面,执行服务控制检查缓存从磁盘上取回被请求的页面确定在回复中包含的MIME类型处理各种零碎的事项将回复返回给客户在服务器的日志中增加一个条目较为流行的服务器包括Apache和微软的InternetInformationServer113.7.2:万维网•静态页面•动态页面•活动页面3.5.2万维网页面页面每个服务站点都包括若干个相互关联的页面14万维网站点A万维网站点C万维网站点E万维网站点D万维网站点B3.5.2万维网页面Web页面构成:超文本以非线性方式组织的文本超链接允许我们同其他网页或站点之间进行连接的元素。可以通过单击链接(词、短语、符号、图像等),转向它所指向的文档也称为热链接(hotlink),或者称为”(hypertextlink)。超媒体包含图形、图像,动画、声音和电视片断153.5.2万维网页面关于一个特定的主题的信息可以是非分布式的:所有信息由同一个服务器上的一个或多个万维网页面组成分布式的:信息由分布在多个服务器上的多个万维网页面组成163.5.2万维网页面万维网页面(Web文档)分类文档基于文档内容被确定的时间静态文档(页面)动态文档(页面)活动文档(页面)173.5.2万维网页面1.静态文档:内容固定,由服务器创建,存储在服务器中,客户只能得到文档的一个副本页面的内容在创建时确定,使用过程中内容不会变在服务器中的页面可以改变的,但用户不能改变它描述语言:HTML,XML,XSL,XHTML.183.5.2万维网页面2.动态页面页面的内容在浏览器请求该页面时才由万维网服务器创建出来的请求到达时,建立并返回给浏览器在创建之后所包含的信息内容就固定了,没有持续更新信息的能力动态页面能够报告当前最新信息。例如,动态页面可用来报告天气预报或民航售票情况等内容用CGI、PHP、JSP、ASP实现193.5.2万维网页面203.5.2万维网页面3.活动页面以二进制代码形式存储在服务器中,在客户端运行当浏览器请求活动页面时,服务器就发送这个字节码形式的页面副本,然后页面就在客户端(浏览器)运行。活动页面程序可与用户直接交互,并可连续地改变屏幕的显示许多应用,需要程序与用户进行交互或者在屏幕上产生动画图形,活动页面能够提供这样的功能由Java小程序、JavaScript、JS等实现213.5.2万维网页面223.5应用层协议3:万维网•HTTP协议、特点及工作过程•HTTP报文•HTTP无状态性与cookie技术3.5.3超文本传送协议HTTP1.HTTP协议、特点及工作过程HTTP协议HyperTextTransferProtocol超文本传输协议是Internet网络上应用最为广泛的一种网络协议是万维网客户与服务器交互时遵循的应用层协议,是Web的核心版本:1997年以前使用的是RFC1945定义的HTTP/1.0协议,1998年这个协议升级为HTTP/1.1安全超文本协议连接:HTTPS,安全超文本连接协议使用https://代替HTTP协议定义了:Web客户是如何向Web服务器请求Web页面服务器如何将Web页面传送给客户以及这些交互报文的格式。HTTP协议由两部分程序实现:客户程序服务器程序它们运行在不同的端系统中,通过交换HTTP报文进行会话253.5.3超文本传送协议HTTPHTTP协议的主要特点:1).支持客户/服务器模式。2).简单快速:客户向服务器请求服务时,只需传送请求方法和路径由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。3).灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。263.5.3超文本传送协议HTTPHTTP协议的主要特点(续):4).请求-响应模式:限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。5).无状态:HTTP协议是无状态协议,指协议对于事务处理没有记忆能力。如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。273.5.3超文本传送协议HTTPHTTP协议的内部操作过程HTTP协议的客户/服务器模式的信息交换过程万维网服务器都有一个服务器进程,不断地监听80端口当它发现有浏览器向它发出连接请求时,建立TCP连接。之后,浏览器就向万维网服务器发出某个页面的请求然后服务器返回所请求的页面作为响应最后,TCP连接释放它分四个过程建立连接发送请求信息(浏览器服务器)发送响应信息(服务器浏览器)关闭连接。283.5.3超文本传送协议HTTP客户及服务器概念是逻辑概念293.5.3超文本传送协议HTTP1.HTTP协议、特点及工作过程2.HTTP报文3.HTTP无状态性与cookie技术303.5.3超文本传送协议HTTP2.HTTP报文HTTP协议包含了对HTTP报文格式的定义。HTTP报文有两种:请求报文从客户向服务器发送的报文响应报文从服务器到客户的报文31客户服务器请求响应GET/usr/bin/imageHTTP/l.lHost::Mozilla/4.0Accept-language:cnHTTP/1.1200OKConnection:closeDate:Tus,06Mar201212:00:15GMTServer:Apache/1.3.0(unix)Last-Modified:Thu,8Mar201209:23:24GMTContent-Length:6821Content-Type:text/htrnl...请求行首部行实体主体状态行首部行实体主体3.5.3超文本传送协议HTTPHTTP请求报文和响应报文都是由三个部分组成第一部分请求报文以请求行开始响应报文以状态行开始第二部分是首部行最后是实体主体323.5.3超文本传送协议HTTP1)请求报文(1)请求行有3个字段:方法字段(请求类型)URL字段HTTP协议版本333.5.3超文本传送协议HTTP343.5.3超文本传送协议HTTP(2)请求报文-首部行用来说明浏览器、服务器或报文主体的一些信息如图中Host:定义了目标所在的主机(3)请求报文-实体主体(entitybody)在使用GET方法时为空当方法字段为POST时(例如HTTP客户机常常在用户提交表单时使用POST方法),实体主体中应包括用户在表单字段中输入的值353.5.3超文本传送协议HTTP2)响应报文每一个请求报文发出后,都能收到一个响应报文响应报文:第一行就是状态行首部行实体主体(有时有)363.5.3超文本传送协议HTTP状态行有3个字段:状态码(Status-Code)都是三位数字的,后面跟有状态信息1xx请求已被服务器接收,继