摘要
- 网络应用概述
- 域名系统(DNS)
- 文件传输协议(FTP)
- 电子邮件
- 万维网(WWW)
一、网络应用概述
网络应用是什么?
网络应用是直接面向计算机网络的用户,遵循相应的网络应用协议,为用户提供某个特定的网络服务的软件系统。发展过程
从最初的电子邮件、远程登录和文件传输等基本网络应用,到万维网、电子商务等基于传统Web的网络应用,再到即时通讯、社交媒体和网络视频等基于P2P技术的网络应用。工作模式
客户/服务器模式(C/S)。
二、域名系统(DNS)
因为IP不好记忆,Internet采用了一套与IP地址并行使用的命名机制——域名,由于存在两种Internet地址描述方式,因此需要一种机制负责在域名地址和IP地址之间进行转换——域名系统(Domain Name System,DNS)。
DNS 的工作机制:域名结构及层次划分、域名服务器、域名解析。
2.1 域名结构及层次划分
域名结构由标号序列组成,各标号间用点隔开,标号分别代表不同级别的域名,如下图所示。
DNS域名标号都是由英文字母和数字组成的,每一个标号不超过63个字符,不区分大小写。整个域名不能超过255个字符。域名的管理采用分级管理方式,其中最高的顶级域名由互联网名称与数字地址分配机构(The Internet Corporationfor Assigned Namesand Number,ICANN)统一管理,其他级别的域名由上一级域名管理机构管理。
顶级域名共分为3大类:
1)国家顶级域名nTLD: 用于分配给各个国家和地区,例如,.cn表示中国,.us表示美国,.uk表示英国等。
2)通用顶级域名gTLD: 用于分配给不同行业和组织,如.com(公司和企业)、.net(网络服务机构)、.org(非赢利组织)、.edu(美国专用教育机构)、.gov(美国专用政府部门)、.mil(美国专用军事部门)和.int(国际组织)等。
3)基础结构域名: 只有一个,即arpa,用于反向域名解析,因此又称为反向域名。
整个域名空间可以用一颗倒置的树来表示,位于树的最顶层是根,根没有具体域名,往下依次是顶级域名、二级域名、三级域名、四级域名……,如下图所示。
二级域名分两类:类别域名和行政域名。由各个国家自己制定和分配。
类别域名(7个): ac(科研机构)、com(工商企业)、edu(中国教育机构)、gov(中国政府机构)、mil(中国国防机构)、net(提供网络服务机构)和 org(中国非盈利性组织)。
行政区域名: 为我国每个省、市、自治区分配一个本行政区所使用的二级域名,如bj(北京)、sh(上海)等。
获得二级域名的单位或组织,可以自主划分下一级域名而无须由上一级管理机构批准。
2.2 域名服务器
DNS实现域名与IP地址的转换具体是由分布在各区的域名服务器实现的。包括4类服务器:根域名服务器、顶级域名服务器、权限域名服务器和本地域名服务器。
1)根域名服务器
所有的根域名服务器都知道所有的顶级域名服务器的域名和IP地址。共有13个不同IP地址的逻辑根域名服务器,每个逻辑根服务器都由多台服务器组成,它们有相同的域名,分布在多个地点,当一个域名在本地域名服务器无法解析时,就去查找离自己最近的根域名服务器设备,然后告知本地域名服务器去哪个顶级域名服务器进行查询。
2)顶级域名服务器
负责管理在该服务器注册的所有二级域名。当收到DNS请求时,给出域名查询结果,或者给出应该继续查询的域名服务器的IP地址。
3)权限域名服务器
负责一个区的域名服务,其中保存了该区中所有主机的域名到IP的映射。当不能回答DNS请求时,将告诉用户应该继续查询哪一个权限域名服务器。
4)本地域名服务器
默认域名服务器。离请求主机最近,当主机发出DNS查询请求时,先发送给本地域名服务器,如果要查询的主机和本地域名服务器处于同一网络,则直接把查询主机域名转为IP地址,不需要再去访问其他域名服务器。
2.3 域名解析过程
域名解析分为递归解析和迭代解析两种方式。
- 递归解析 (主机向本地域名服务器查询过程)
如果在本地域名服务器无法解析,则本地域名服务器就以DNS客户的身份向某根域名服务器继续发出查询请求。如图所示。
- 迭代查询 (本地域名服务器向根域名服务器查询过程)
当根域名服务器收到本地域名服务器的请求时,要么给出查询的IP地址,要么就告知本地域名服务器下一步应当向哪个顶级域名服务器查询;当向被告知的顶级域名服务器查询时,顶级域名服务器同样按照要么给出查询的IP地址,要么告知本地域名服务器下一步应当向哪个权限域名服务器查询;最终,在某个权限域名服务器上查询到域名的IP地址,并将其返回到主机。如图所示。
三、文件传输协议(FTP)
文件传输协议(File Transfer Protocol,FTP)用于用户在两台主机之间进行远距离的文件传输,并保证传输的可靠性。FTP采用客户机/服务器的方式,由FTP服务器和FTP客户机两部分组成。服务器与客户机之间通过 “下载” 和 “上传” 来实现文件的传输。
FTP 通信原理
FTP客户机和服务器之间的通信是由若干个进程实现的,分为FTP服务器进程和客户机进程。一个FTP服务器进程可以同时为多个客户机进程提供服务。FTP的服务器进程由两部分组成:一个主进程,负责接收新的请求;还有若干个从属进程,负责处理单个请求。FTP主进程工作步骤
1)打开熟知端口(端口号为21),使客户进程能够连接上。
2)等待客户进程发出连接请求。
3)启动从属进程来处理客户进程发来的请求。从属进程对客户进程的请求处理完毕后就终止。
4)回到等待状态,继续接受其他客户进程发来的请求。主进程与从属进程是并发进行的。文件传输过程
在文件传输时,FTP客户端和服务器之间要建立两个并行的TCP连接:控制连接和数据连接。
1)控制连接: 在整个会话期间一直保持打开,FTP客户发出的传送请求通过控制连接发送给服务器端的控制进程的端口(21),但控制连接不用来传送文件。
2)数据连接: 用于传输文件。服务器端的控制进程在收到FTP客户发送的文件传输请求后,就创建数据传送进程并建立数据连接,通过数据连接完成文件的传送,传送完毕后关闭数据连接并结束运行。
四、电子邮件(E-mail)
电子邮件系统构成
主要由3部分构成:用户代理、邮件服务器和邮件发送/读取协议。
1)用户代理UA(User Agent): 以电子邮件客户端软件的形式存在,是用户与电子邮件系统之间的接口。
2)邮件服务器: 相当于邮局,功能是发送和接收邮件,同时还要向发信人报告邮件发送的情况(已发送、被拒绝或丢弃等)。
3)邮件发送/读取协议: 实现用户代理与邮件服务器之间的通信。邮件发送协议是SMTP,读取协议为POP3。电子邮件工作原理
1)用户使用用户代理编辑好要发送的电子邮件,并指明收件人地址,然后点击发送。
2)用户代理使用SMTP协议,将邮件发送到发送方邮件服务器上,保存在邮件缓冲区内,等待发送到接收方的邮件服务器。
3)发送方邮件服务器和接收方邮件服务器建立TCP连接,将邮件缓冲区内的邮件发送出去,如果超时未能发送出去,则发送邮件服务器要向用户代理报告发送失败。
4)接收方邮件服务器收到邮件后,将邮件放入收件人的用户邮箱中,等待收件人下载。
5)当收件人运行用户代理的 “接收邮件” 功能时,用户代理利用POP3或IMAP协议,将邮件从接收服务器中下载到本地用户代理。SMTP 协议的基本机制
SMTP使用客户机/服务器方式,因此负责发送邮件的SMTP进程就是SMTP客户,而负责接收邮件的SMTP进程就是SMTP服务器。当用户代理要发送电子邮件到发送方邮件服务器时,用户代理就作为SMTP客户端,发送方邮件服务器是SMTP服务器;当发送方邮件服务器与接收方邮件服务器建立TCP连接时,发送方邮件服务器就作为SMTP客户端,而接收方邮件服务器时SMTP服务器。SMTP 协议的缺点
1)不能传送可执行文件或二进制对象,只限于传送7位的ASCII码。
2)From命令后可以任意填写邮件地址,从而造成垃圾邮件的泛滥。
3)明文传输,容易被截获。POP3 协议的基本机制
也是客户机/服务器的工作方式。在接收邮件的用户PC中必须运行POP客户端程序,而在邮件接收用户所连接的接收服务器中则运行POP服务器程序。POP服务器程序需要设置用户名和密码,用户验证通过后才能下载邮件。当用户下载邮件到本地后,服务器会把该邮件删除,会造成用户不能再另外一台计算机再次下载。IMAP 协议的基本机制
同样采用客户机/服务器工作方式。用户计算机上的IMAP客户端程序通过TCP与接收邮件服务器上的IMAP服务器程序建立连接,用户可以对接收邮件服务器收到的邮件进行阅读、回复和管理等操作。这样,就可以在不同地点,不同计算机进行电子邮件的使用。缺点是如果用户不删除邮件,IMAP服务器上的邮件就一直存在,对服务器存储空间要求比较大。
除了传统的使用客户机/服务器模式的电子邮件服务外,现在更多使用基于Web的电子邮件,用户通过Web浏览器登录网站上的电子邮件,并在浏览器上进行邮件收发操作。基于Web的电子邮件采用的是HTTP协议。
五、万维网(WWW)
5.1 万维网概念与核心技术
万维网(World Wide Web,WWW)是Internet 上最为普及的一种应用服务,它由成千上万个万维站点(网站)组成的信息存储系统,网站以网页的形式存储着各种文档,其中包含了文字、图片、声音和视频等各种信息。各个网站以链接的方式联系在一起。
万维网的核心技术:
1)统一资源定位(URL): 标识分布在世界各地的文档。
2)超文本传输协议(HTTP): 从一个文档到另一个文档的数据信息交换。
3)超文本标记语言(HTML): 各种文档在所有客户端正确显示。
5.2 统一资源定位 URL
为了给Internet上的每一个文档进行标识,万维网采用统一资源定位URL的方法。URL 的格式如下:
<协议>://<主机>:<端口>/<路径>
- <协议> 指出用户使用什么协议访问万维网文档,如HTTP和FTP。
- :// 是规定的格式。
- <主机> 万维网文档所在的主机域名。
- :<端口> 应用层协议所使用的端口号,如HTTP使用80端口。
- /<路径> 万维网文档在主机中的位置。
5.3 HTTP
用户访问万维网文档,以及将万维网文档中的数据传送到用户端,这些功能是由超文本传输协议 HTTP(HyperText Transfer Protocol)完成的。
HTTP是由客户端请求和服务端响应构成。用户在浏览器输入URL,所经历的过程为:
1)用户在浏览器中输入要访问的网页URL。
2)浏览器根据URL中的域名,通过DNS解析出目标网页的IP地址。
3)浏览器与网页所在服务器建立TCP连接。
4)浏览器发送HTTP请求报文,获取目标网页的文件。
5)服务器发送HTTP响应报文,将目标网页文件发送给浏览器。
6)释放TCP连接。
7)浏览器将网页内容展现给用户计算机。
- HTTP1.0 与 HTTP 1.1 的区别?
1.0版本使用非持续连接,每传输一个对象都需要利用一个往返时间RTT建立TCP连接,用一个往返时间申请并传输回对象,即平均用两个往返时间获取一个对象;1.1版本使用持续连接,即利用同一个TCP连接传输多个对象。
HTTP有两类报文:
请求报文: 从客户端向服务器发送的报文。
响应报文: 从服务器到客户端的报文。
- HTTP请求报文格式
请求报文由请求行、首部行、空行和请求数据4部分组成,如下图所示。
1)请求行: 包含请求方法、URL、HTTP版本3部分。请求方法主要有GET、POST、HEAD、PUT、DELETE、OPTIONS、TRANCE和CONNECT等。
2)首部行: 包括若干行,首部行关键字有以下几个:
- User-Agent:发出请求的浏览器类型
- Accept:客户端可识别的内容类型列表
- Host:请求的主机名
- Connnection:告知服务器发送完后释放连接还是保持连接
3)空行
最后一个首部行之后是一个空行,发送回车符和换行符,通知服务器以下不再有首部行了。
4)请求数据
用于客户端向服务器端填写表单数据,GET方法没有请求数据,POST有。
- HTTP响应报文格式
响应报文由状态行、消息头部、空行和响应正文4部分组成,如下图所示。
1)状态行: 包含版本、状态码、短语3部分。状态码表示服务器发回的响应状态代码,短语表示状态码的文本描述。状态码由5种取值:
- 1xx:指示信息。表示请求已收到,继续处理。
- 2xx:成功。表示请求已被成功接收、处理。
- 3xx:重定向。要完成请求必须进行更进一步的操作。
- 4xx:客户端错误。请求有语法错误或请求无法实现。
- 5xx:服务器错误。服务器未能实现合法的请求。
2)首部行: 包括若干行,首部行关键字有以下几个:
- Date:表示返回消息的时间
- Content-Type:表示返回消息的内容类型
- Content-Length:表示返回内容的长度(字节数)
- Server:表示使用的服务器软件即版本号
3)空行
最后一个首部行之后是一个空行,发送回车符和换行符,通知服务器以下不再有首部行了。
4)响应正文
是服务器端根据客户端的请求返回的具体内容。
5.4 Cookie 机制和 Session 机制
由于HTTP是一种无状态的协议,服务器端无法追踪用户的会话,为了记住用户的状态就出现了Cookie机制和Session机制。
1. Cookie 机制
Cookie 是万维网服务器在客户端保存的一段文本,用于保存用户访问服务器的相关信息。服务器根据Cookie中保存的信息对用户进行识别和追踪。
Cookie 工作原理: 用户A使用他的计算机首次浏览网站服务器,该网站会给A分配一个唯一的ID号,并以此为索引在服务器数据块中创建一条记录。然后在发给A的响应报文中添加一个首部行,名为Set-cookie,值为分配给A的ID号。当A收到网站发回的HTTP响应报文后,先在本地计算机创建一个文本文件(即为网站的Cookie),并从响应报文中读取A的ID号,与网站主机名一起写到Cookie文件中,当A再用同一台计算机访问该网站时,HTTP请求报文中写入之前获得的ID号。网站收到后根据ID号查询数据库,获得A的访问行为。
Cookie 应用场景:
1)统计网站的实际访问人数、新访问者和重复访问者的人数对比。
2)限制某些特定的用户的访问。
3)可以存储用户访问过程中的操作习惯和偏好,如颜色和布局等。
4)记录用户登录名、密码,避免多次登录。
5)实现电子商务的 “购物车” 功能。
2. Session 机制
Session 与 Cookie 区别:
Cookie 机制中的用户信息文件被保存再客户端,而 Session 在服务器端保存用户信息。
Session 工作原理: 当用户使用浏览器首次访问某个网站时,服务器会为该用户创建一个唯一的 Session ID,并以此ID为索引开辟一块数据存储空间,用户保存该用户的访问信息。服务器将 Session ID 通过响应报文返回给用户。以后用户每次访问该网站时,请求报文都包含Session ID,服务器收到后根据Session ID检索服务器保存的Session。客户端和服务器端传递Session ID 有两种方式,一是通过Cookie 传递,另一个是通过在URL路径后添加参数方式。
总结
了解了网络应用是什么以及基本模式
域名系统DNS的功能是什么,层次划分及解析过程
文件传输服务FTP的功能和工作模式是什么
电子邮件发送协议SMTP和读取协议POP3/IMAP的基本机制
统一资源定位URL的格式,HTTP的工作过程
Cookie 和 Session 机制的作用和基本原理