第6章应用层应用层6.1域名系统DNS6.4万维网域名系统概述许多应用层软件经常直接使用域名系统DNS(DomainNameSystem),但计算机的用户只是间接而不是直接使用域名系统。因特网采用层次结构的命名树作为主机的名字,并使用分布式的域名系统DNS。6.1.1域名系统概述名字到IP地址的解析是由若干个域名服务器程序完成的。域名服务器程序在专设的结点上运行,运行该程序的机器称为域名服务器。6.1.2因特网的域名结构域名的结构由标号序列组成,各标号之间用点隔开:….三级域名.二级域名.顶级域名各标号分别代表不同级别的域名。顶级域名TLD(TopLevelDomain)(1)国家顶级域名:.cn表示中国,.us表示美国,.uk表示英国,等等。(2)通用顶级域名:最常用顶级域名是:.com(公司和企业).net(网络服务机构).org(非营利性组织).edu(美国专用的教育机构).gov(美国的政府部门).mil(美国军事部门).int(国际组织)顶级域名TLD(续)(3)基础结构域名(infrastructuredomain):这种顶级域名只有一个,即arpa,用于反向域名解析,因此又称为反向域名。因特网的域名空间根四级域名mail……bjeducom…cctvibmhp二级域名pkutsinghua…三级域名mail…comnetorgedugovaerocnuk…顶级域名……6.1.3域名服务器一个服务器所负责管辖的(或有权限的)范围叫做区(zone)。各单位根据具体情况来划分自己管辖范围的区。但在一个区中的所有节点必须是能够连通的。每一个区设置相应的权限域名服务器,用来保存该区中的所有主机的域名到IP地址的映射。区的不同划分方法举例域abc.com区abc.comabcxuvwty(a)区=域(b)区域域abc.com区abc.com区y.abc.comabcxuvwtycomeduorg根comeduorg根树状结构的DNS域名服务器根域名服务器org域名服务器com域名服务器edu域名服务器…y.abc.com域名服务器abc公司有两个权限域名服务器权限域名服务器根域名服务器顶级域名服务器abc.com域名服务器域名服务器有以下四种类型根域名服务器顶级域名服务器权限域名服务器本地域名服务器根域名服务器—最高层次的域名服务器—根域名服务器是最重要的域名服务器。所有的根域名服务器都知道所有的顶级域名服务器的域名和IP地址。不管是哪一个本地域名服务器,若要对因特网上任何一个域名进行解析,只要自己无法解析,就首先求助于根域名服务器。在因特网上共有13个不同IP地址的根域名服务器,它们的名字是用一个英文字母命名,从a一直到m(前13个字母)。顶级域名服务器和权限域名服务器顶级域名服务器:这些域名服务器负责管理在该顶级域名服务器注册的所有二级域名。权限域名服务器:负责一个区的域名服务器。本地域名服务器本地域名服务器对域名系统非常重要。当一个主机发出DNS查询请求时,这个查询请求报文就发送给本地域名服务器。每一个因特网服务提供者ISP,或一个大学,甚至一个大学里的系,都可以拥有一个本地域名服务器,域名的解析过程主机向本地域名服务器的查询一般都是采用递归查询。本地域名服务器向根域名服务器的查询通常是采用迭代查询。本地域名服务器采用迭代查询顶级域名服务器dns.com权限域名服务dns.abc.com本地域名服务器dns.xyz.com根域名服务器迭代查询y.abc.com的IP地址m.xyz.com递归查询需要查找y.abc.com的IP地址本地域名服务器采用递归查询(比较少用)顶级域名服务器dns.com权限域名服务dns.abc.com本地域名服务器dns.xyz.comm.xyz.com根域名服务器递归查询递归查询y.abc.com的IP地址需要查找y.abc.com的IP地址6.4万维网万维网概述万维网(WorldWideWeb)是一个大规模的、联机式的信息储藏所。英文简称为Web。万维网提供分布式服务万维网站点A万维网站点C万维网站点E万维网站点D万维网站点B万维网工作方式-客户服务器方式浏览器就是在用户计算机上的万维网客户程序。万维网文档所驻留的计算机则运行服务器程序,因此这个计算机也称为万维网服务器。客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所要的万维网文档。万维网必须解决的问题(1)怎样标志分布在整个因特网上的万维网文档?使用统一资源定位符URL(UniformResourceLocator)来标志万维网上的各种文档。万维网必须解决的问题(2)用何协议实现万维网上各种链接?在万维网客户程序与万维网服务器程序之间进行交互所使用的协议,是超文本传送协议HTTP(HyperTextTransferProtocol)。万维网必须解决的问题(3)怎样使各种万维网文档都能在因特网上的各种计算机上显示出来,同时使用户清楚地知道在什么地方存在着超链?使用超文本标记语言HTML(HyperTextMarkupLanguage)。万维网必须解决的问题(4)怎样使用户能够很方便地找到所需的信息?为了在万维网上方便地查找信息,用户可使用各种的搜索工具(即搜索引擎)。6.4.2统一资源定位符URL1.URL的格式统一资源定位符URL是对可以从因特网上得到的资源的位置和访问方法的一种简洁的表示。URL的一般形式是:协议://主机:端口/路径http——超文本传送协议HTTP使用HTTP的URL超文本传送协议HTTP1.HTTP的操作过程HTTP协议定义了浏览器怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。万维网的工作过程因特网服务器连接HTTP响应报文响应文档HTTP请求报文请求文档3.HTTP的报文结构HTTP是面向文本的,每一个字段都是一些ASCII码串,各个字段长度都不确定。HTTP有两类报文:请求报文——从客户向服务器发送请求报文。响应报文——从服务器到客户的回答。HTTP的报文结构(请求报文)方法URL版本首部字段名首部行:值首部字段名值:…实体主体(通常不用)请求行空格回车换行:CRLFCRLFCRLFCRLF报文由三个部分组成,即开始行、首部行和实体主体。在请求报文中,开始行就是请求行。开始行HTTP的报文结构(请求报文)方法URL版本首部字段名首部行:值首部字段名值:…实体主体(通常不用)请求行空格回车换行:CRLFCRLFCRLFCRLF“方法”是面向对象技术中使用的专门名词。所谓“方法”就是对所请求的对象进行的操作,因此这些方法实际上也就是一些命令。因此,请求报文的类型是由它所采用的方法决定的。HTTP请求报文的一些方法方法(操作)意义OPTION请求一些选项的信息GET请求读取由URL所标志的信息HEAD请求读取由URL所标志的信息的首部POST给服务器添加信息(例如,注释)PUT在指明的URL下存储一个文档DELETE删除指明的URL所标志的资源TRACE用来进行环回测试的请求报文CONNECT用于代理服务器HTTP的报文结构(请求报文)方法URL版本首部字段名首部行:值首部字段名值:…实体主体(通常不用)请求行空格回车换行:CRLFCRLFCRLFCRLF“URL”是所请求的资源的URL。HTTP的报文结构(请求报文)方法URL版本首部字段名首部行:值首部字段名值:…实体主体(通常不用)请求行空格回车换行:CRLFCRLFCRLFCRLF“版本”是HTTP的版本。HTTP的报文结构(响应报文)版本状态码短语首部字段名首部行:值首部字段名值:…实体主体(有些响应报文不用)状态行空格回车换行:CRLFCRLFCRLFCRLF响应报文的开始行是状态行。状态行包括三项内容,即HTTP的版本,状态码,以及解释状态码的简单短语。开始行4.在服务器上存放用户的信息万维网站点使用Cookie来跟踪用户。Cookie表示在HTTP服务器和客户之间传递的状态信息。使用Cookie的网站服务器为用户产生一个唯一的识别码。利用此识别码,网站就能够跟踪该用户在该网站的活动。6.4.4万维网的文档1.超文本标记语言HTML超文本标记语言HTML(HyperTextMarkupLanguage)是一种制作万维网页面的标准语言。HTML文档是以.html或.htm为后缀。HTML文档中标签的用法HTMLHEADTITLE一个HTML的例子/TITLE/HEADBODYH1HTML很容易掌握/H1P这是第一个段落。虽然很短,但它仍是一个段落。/PP这是第二个段落。/P/BODY/HTML2.动态万维网文档静态文档是指该文档创作完毕后就存放在万维网服务器中,在被用户浏览的过程中,内容不会改变。动态文档是指文档的内容是在浏览器访问万维网服务器时才由应用程序动态创建。CGI响应动态文档HTTP响应报文扩充了功能的万维网服务器万维网服务器浏览器程序万维网客户服务器程序HTTP数据库HTTP请求报文请求文档CGI程序创建动态文档通用网关接口CGI(CommonGatewayInterface)CGI是一种标准,它定义了动态文档应如何创建,输入数据应如何提供给应用程序,以及输出结果应如何使用。CGI程序的正式名字是CGI脚本(script)。3.活动万维网文档动态文档的无法及时刷新屏幕以及像动画之类的显示效果。活动文档(activedocument)技术把所有的工作都转移给浏览器端。每当浏览器请求一个活动文档时,服务器就返回一段程序副本在浏览器端运行。响应程序HTTP响应报文程序活动文档在客户端创建万维网服务器浏览器程序万维网客户服务器程序HTTPHTTP请求报文请求文档程序事先被编译成二进制代码,存放为文件程序此程序在客户端创建出活动文档文档用Java技术创建活动文档由美国Sun公司开发的Java语言是一项用于创建和运行活动文档的技术。在Java技术中使用“小应用程序”(applet)来描述活动文档程序。6.4.5万维网的信息检索系统1.全文检索搜索和分类目录搜索在万维网中用来进行搜索的程序叫做搜索引擎。全文检索搜索引擎是一种纯技术型的检索工具。分类目录搜索分类目录搜索引擎并不采集网站的任何信息,而是利用各网站向搜索引擎提交的网站信息时填写的关键词和网站描述等信息,经过人工审核编辑后,如果认为符合网站登录的条件,则输入到分类目录的数据库中,供网上用户查询。6.5电子邮件6.5.1概述电子邮件(e-mail)是因特网上使用得最多的和最受用户欢迎的一种应用。电子邮件的一些标准发送邮件的协议:SMTP读取邮件的协议:POP3和IMAPMIME在其邮件首部中说明了邮件的数据类型(如文本、声音、图像、视像等),使用MIME可在邮件中同时传送多种类型的数据。电子邮件的主要构件用户代理UA(UserAgent)就是用户与电子邮件系统的接口,是电子邮件客户端软件。邮件服务器的功能是发送和接收邮件,同时还要向发信人报告邮件传送的情况(已交付、被拒绝、丢失等)。电子邮件的最主要的组成构件发送方邮件缓存接收端邮件服务器用户代理SMTPSMTPPOP3发送端邮件服务器用户代理用户邮箱接收方(发送邮件)(发送邮件)(读取邮件)因特网SMTPPOP3发送邮件发送邮件SMTP读取邮件TCP连接TCP连接发送方邮件