– running in network hosts in “user space”
– exchange messages to implement app
– e.g., email, file transfer, the Web
计算机网络地址(如IP)难于记忆,应该使用符号地址,比如用www.ustb.edu.cn表示USTB的IP地址。
但是,网络本身是使用IP地址的,因此需要一个完成二者之间相互转换的机制。
当网络规模比较小时,例如ARPANET,每台主机只需查找一个文件(UNIX的host),该文件中列出了主机与IP地址的对应关系。
当网络规模很大时,上述方法就不适用了,因此产生了域名系统DNS(Domain Name System)。
域名系统是一个多层次的、基于域的命名系统,并使用分布式数据库加以实现。
为了将符号名影射成IP地址,
–应用程序需要调用解析器(resolver), –解析器向本地DNS发出请求, –本地DNS查询该名字,并返回包含对应的IP地址的响应报文给解析器。 –解析器将IP地址返回给调用方。
请求和响应均以UDP包格式发出。
有了IP地址后,应用程序可以与目标机建立TCP连接,或给它发送UDP数据包
250个顶级域名
这些域又被进一步划分成子域,这些子域可被再次划分,以此类推
顶级域名分为通用的和国家/地区的两种。每个域对它下面的子域和机器进行管理。
DNS中,每台计算机的名字是由“.”所分开的字符数字串所组成的。例如www.ustb.edu.cn.
域名是大小写无关的,“edu”和“EDU”相同。域名最长255个字符,每部分最长63个字符。
层次型命名机制
域的层次数可以是二层、三层或多层;为保证全球域名的统一性,因特网规定顶层域名。
美国是Internet发源地,美国的顶级域名以组织模式划分:
其他国家或地区顶级域名以地理模式划分:
网络信息中心将顶级域的管理权授予指定的管理机构,各个管理机构再为他们所管理的域分配二级域名,并将二级域名的管理权授予其下属的管理机构。
中国互联网信息中心负责管理我国的顶级域,将cn域分为多个二级域名
一旦一个组织拥有一个域的管理权,就可以决定是否需要进一步划分层次。因此,Internet树状层次结构的命名方法,使得任何一个连接到Internet的主机都有一个全网唯一的域名
主机域名的一般格式:…….四级域名.三级域名.二级域名.顶级域名
中国互联网信息中心CNNIC将我们教育机构的二级域(edu域)的管理权授予中国教育科研网CERNET网络中心;CERNET网络中心将edu域化分为多个三级域,并将三级域名分配给各个大学与教育机构。例如,edu域下的ustb代表北京科技大学,并将ustb域的管理权授予北科大网络管理中心。网络管理中心又将ustb域划分成多个四级域,将四级域名分配给下属部门或主机
www.ustb.edu.cn
EDU.CN是CN的子域;USTB.EDU.CN是EDU.CN的子域。
第一级域“cn”表示这是中国;
第二级域“edu.cn”表示这是中国教育部门;
第三级域“ustb.edu.cn”表示是中国教育部门下属的、英文缩写为ustb的学校;
Www是该校园网中的一台服务器或主机;
“域”,域名中每一个标号右面的标号和点;
在DNS的数据库中用资源记录来表示主机和子域的信息,当应用程序进行域名解析时,得到的便是域名所对应的资源记录。
资源记录是一个五元式
Domain_name Time_to_live Class Type Value
DNS将域名空间划分为许多无重叠的区域(zone) ,每个区域覆盖了域名空间的一部分并设有域名服务器对这个区域的域名进行管理。
每个区域有一个主域名服务器和若干个备份域名服务器,区域的边界划分是人工设置的,比如:edu.cn ustb.edu.cn是两个不同的区域,分别有各自的域名服务器。
当解析器需查询一个域名时,首先将该查询传递给本地域名服务器
如果域名属于本地域名服务器的管辖范围,在本地数据库中查找该域名对应的IP地址,直接回答该请求
如果请求中的域名在远端,域名服务器将启动一次远程查询。采用迭代查询方法。这是由于许多域名服务器太忙了,该方法把重负压在了查询发起方。
域名解析算法
-递归查询(recursive query):从顶开始解析,要求名字服务器系统一次性完成全部名字—地址变换;
-迭代查询(iterative query):从本域名服务器查询开始,每次请求一个服务器,如果不行,再请求别的服务器;
两者区别:
-递归解析:任务主要由服务器软件承担;
-重复解析:任务主要由域名解析器软件承担;
电子邮件的应用
E-mail服务,为Internet用户之间发送和接收信息提供了一种快捷、廉价的现代化通信手段
电子邮件地址:[email protected]
Username:用户名,代表用户在邮箱中使用的账号;
Hostname:用户邮箱所在的邮件服务器的主机名;
Domain-name:邮件服务器所在的域名;
如某台邮件服务器主机名为mail,该服务器所在域名为ustb.edu.cn
,在该服务器上有一个邮件用户,用户名为wang
;该用户的电子邮件地址为[email protected]
;
用户代理:允许用户阅读和发送电子邮件,一般为用户进程;
邮件传输代理(邮件服务器):将邮件从源端发送至目的端,一般为系统的后台进程;采用协议SMTP
简单邮件传输协议SMTP(Simple Mail Transfer Protocol)
–成文:指创建消息或回答消息的过程;
–传输:指将消息从发送者传出至接收者;
–报告:将消息的发送情况报告给消息发送者;
–显示:使用相应的工具软件将收到的消息显示给接收者
–处理:接收者对接收到的消息进行处理,存储/丢弃/转发等等。
–mailbox,创建邮箱存储邮件;
–mailing list;
–抄送(cc)、高优先级、加密。
–休假代理
–发送电子邮件
email地址,例如,[email protected]
mailing list,例如,[email protected]
–阅读电子邮件
–例子:gmail, outlook, 163, foxmail等
RFC 5322(最新)—The Internet Message Format 邮件由信封、数个头字段、一个空行和邮件体构成。
MIME(Multipurpose Internet Mail Extensions),增加了对图像、声音、视频、可执行文件等的支持。为传送非ASCII码的邮件定义了编码规则。
INTERNET使用简单邮件传输协议SMTP完成电子邮件的交换。
过程如下
–消息传输代理在源端主机和目的主机的25号端口之间建立一条TCP连接,使用简单邮件传输协议SMTP协议进行通信; –在TCP连接建立好之后,作为客户的邮件发送方等待作为服务器的邮件接收方首先传输信息; –服务器首先发出准备接收的SMTP消息,表明自己的标识并准备好接收邮件; –客户声明邮件的发信人地址及收信人的地址,服务器确认收信人存在后,则指示客户发送邮件; –客户发送邮件,服务器予以确认 –两个方向的发送完成之后,释放连接。
IMAP—The Internet Message Access Protocol
Internet邮件访问协议
To use IMAP, the mail server runs an IMAP server that listens to port 143.
Theuser agent runs an IMAP client.
The client connects to the server and begins toissue commands from those listed in Fig. 7-17.
IMAP是较早使用的最终交付协议POP3的改进版。POP3通常将邮件下载到计算机上,而不是留在服务器上,使用非常不方便。
First, the client will start a secure transport if one is to be used (in order tokeep the messages and commands confidential), and then log in or otherwiseauthenticate itself to the server.
there are many commands to list folders and messages, fetch messages or even parts of messages, mark messages with flags for later deletion, and organize messages into folders.
IMAP has many other features, e.g.,
–to address mail by using attributes (e.g., give me the first message from Alice). –to perform searches on the server to find the messages that satisfy certain criteria so that only those messages are fetched by the client.
7.3.1 Architectural Overview 7.3.2 Static Web Pages 7.3.3 Dynamic Web Pages and Web Applications 7.3.4 HTTP—The HyperText Transfer Protocol 7.3.5 The Mobile Web 7.3.6 Web Search
WWW(World Wide Web)是用于访问遍布于INTERNET上的相互链接在一起的超文本的一种结构框架。
历史
–1989年,设计WWW的思想产生于欧洲核研究中心CERN;
–1991年,第一个原型在美国的Hypertext ’91会议上展示;
–1993年,第一个图形化浏览器,Mosaic;
–1994年,Andreessen创建NETSCAPE公司,开发WEB的客户和服务器软件;其后和微软的IE浏览器进入了一场浏览器大战
–1994年,CERN和MIT共同创建WWW论坛,制定相关的协议标准,http://www.w3.org。
许多新想法丰富着WWW世界,并来自于年轻的学生。如, Mark Zuckerberg开始创建Facebook时是Harvard学生, Sergey Brin及Larry Page创建Google时是Stanford学生。
WWW是由互相链接在一起的网页构成的,这些网页是由普通文本、超文本Hypertext,以及图表、照片等构成;
用户通过称为浏览器(如IE)的软件来观看网页,浏览器取回所请求的网页,解释其中所含的文本和格式命令,并正确地显示出来;
网页中的文本串若指向其它的网页(此指针称为超级链接Hyperlink,此文本串称为超文本),会被特别地显示出来(加下划线),用户若选择此超级链接,浏览器会将此超级链接所指的网页取回;
当超文本网页中包含声音、动画等其它媒体时,网页被称为是超媒体的。浏览器一般通过外挂的帮助程序来显示这些超媒体信息。
每一页的抓取都是通过发送请求到服务器,服务器以页面的内容作为响应。所用协议为HTTP超文本传输协议。
–协议类型(HTTP超文本传输协议、FTP、TELNET等); –网页所在机器的DNS域名; –包含网页的文件名称。
如:http://www.cs.washington.edu/index.html
–浏览器确定URL, –通过DNS解析IP地址, –建立TCP连接, –向服务器发出HTTP报文请求网页, –服务器发回网页作为HTTP响应, –浏览器显示页面, –释放连接。
服务器在它的主循环中执行如下步骤:
服务器对每个请求的实际处理过程:
更好地控制格式,同一格式可被多个网页应用
WWW用作应用程序及服务:
服务器必须能处理表单的使用, 如前面的例子中用到的http://widget.com/cgi-bin/order.cgi
及POST
两种典型的处理动态页面请求的方法:
-提供接口,允许Web服务器与后端程序及脚本通信 -后端程序及脚本接受输入信息,生成HTML页面作为响应 -通常用脚本语言开发,如Python, Ruby, Perl等 -调用的程序(如order.cgi)通常放在cgi-bin目录下
其它可选技术:
Java服务器页面JSP,与PHP类似,Java编写,扩展名jsp
活动服务器页面(ASP.NET),Microsoft版本(应用.NET)的PHP及JSP,,扩展名aspx
PHP与CGI不能响应鼠标移动事件,或直接与用户交互,有必要在HTML嵌入脚本
这些脚本必须运行在客户端
产生这种交互式页面的技术统称为动态HTML
最流行的客户端脚本语言为Javascript
其它方法:
VBScript,基于VisualBasic
Applet,基于Java,被编译成Java虚拟机。Applet可嵌入到HTML页面中,并被具有JVM的浏览器解释执行
Microsoft的ActiveX控件,是一种被编译成x86机器指令的程序
Asageneralrule,JavaScriptprogramsareeasiertowrite,Javaappletsexecutefaster,andActiveXcontrolsrunfastestofall.
客户端的脚本(如Javascript)通常和服务器上的脚本通常和其它几个关键技术结合起来使用,这些技术的组合称为AJAX----异步Javascript和XML
许多全功能的应用,如Google的gmail、Maps、Docs等均由AJAX编写
AJAX不是一种语言,而是一组需要一起协同工作的技术,包括:
1.HTML and CSS to present information as pages. 2.DOM (Document Object Model) to change parts of pages while theyare viewed.文档对象模型,浏览时可改变部分页面 3.XML (eXtensible Markup Language) to let programs exchange applicationdata with the server.可扩展标记语言 4.An asynchronous way for programs to send and retrieve XML data. 5.JavaScript as a language to bind all this functionality together.
HTML将内容及格式混合在一起,关注的是信息的表示
许多Web应用程序需要将独立的结构化内容从它的表示中分离开来
XML是一种说明结构化内容的语言
XML没有定义任何标签,用户可以定义自己的标签
XML中的字段可以进一步划分
XML容易被程序分析
HTML也可按照XML术语来定义,该方法称为扩展超文本标记语言XHTML
XML可用作程序之间的流行通信语言,当这种通信由HTTP协议承载时,就被称为一种Web服务(WebService)
简单对象访问协议SOAP (Simple ObjectAccess Protocol)是一个实现了与语言与系统无关的Web服务的方法。
The client just constructsthe request as an XML message and sends it to the server, using the HTTPprotocol. The server sends back a reply as an XML-formatted message. In thisway, applications on heterogeneous platforms can communicate.
HTTP是一个应用层协议,运行在TCP之上,并且与Web密切相关
HTTP越来越像一个传输层协议,可支持多种应用层服务,如媒体播放器与服务器通信并请求专辑信息。
Compared to desktop computers, mobile phones presentseveral difficulties for Web browsing: