计算机网络(六) 应用层
1. 域名系统 DNS
域名服务器:运行域名服务器程序,实现域名到 IP 地址的解析。
DNS 服务器的管辖范围不是以域为单位,而是以区为单位。
区:一个服务器所负责管辖的范围。
域名结构:… . 三级域名 . 二级域名 . 顶级域名
域名只是逻辑概念,不代表计算机所在的物理地点。
1.1 域名服务器有四种类型
1.1.1 根域名服务器
- 根域名服务器是最高层次的域名服务器,也是最重要的域名服务器。所有的根域名服务器都知道所有的顶级域名服务器的域名和 IP 地址。
- 当本地域名服务器无法解析互联网上的域名时,首先就会求助于根域名服务器
- 互联网上共有 13 个不同 IP 地址的根域名服务器,它们的名字分别从 a 到 m(前 13 个字母)
- 根域名服务器共有13 套装置
- 在使用迭代查询时,根域名服务器不把域名直接转换成 IP 地址,而是把下一步应当找的顶级域名服务器的 IP 地址告诉本地域名服务器
1.1.2 顶级域名服务器
- 负责管理在该顶级域名服务器注册的所有二级域名。也叫 TLD 服务器
- 当收到 DNS 查询请求时,就给出对应的回答(可能是最后的结果,也可能是下一步应查找的域名服务器的 IP 地址)
1.1.3 权限域名服务器
- 负责一个区的域名服务器
- 当收到 DNS 查询请求时,就给出对应的回答(可能是最后的结果,也可能是下一步应查找的权限域名服务器的 IP 地址)
1.1.4 本地域名服务器
- 本地域名服务器也被称为默认域名服务器
- 当一个主机发起 DNS 查询请求时,这个查询请求报文就发送给本地域名服务器
- 每一个互联网提供商 ISP,或一个大学都可以拥有一个本地域名服务器
1.2 提高域名服务器的可靠性
DNS 域名服务器把数据复制到几个域名服务器来保存,其中的一个是主域名服务器,其他的是辅助域名服务器
- 当主域名服务器出故障时,辅助域名服务器可以保证 DNS 的查询工作不会中断
- 主域名服务器会定期把数据复制到辅助域名服务器中,而更改数据只能在主域名服务器中进行。这样保证了数据的一致性。
1.3 域名的解析过程
- **主机向本地域名服务器的查询一般都是采用递归查询**。如果主机所询问的本地域名服务器不知道被查询域名的 IP 地址,本地域名服务器就以 DNS 客户的身份,对其他根域名服务器继续发出查询请求报文
- **本地域名服务器向根域名服务器的查询一般都是采用迭代查询**。当根域名服务器收到本地域名服务器的迭代请求报文时,可以给出要查询的 IP 地址,或者告诉本地域名服务器下一步应该向哪一个域名服务器进行查询。
2. 文件传送协议 P28
3. 万维网
3.1 概述
万维网 WWW(World Wide Web)不是某种特殊的计算机,而是一个大规模的、联机式的信息储藏所。
- 万维网是分布式超媒体系统, 是超文本系统的扩充。一个超文本由多个信息源链接成。超媒体与超文本的区别是文档内容不同。超文本文档只包括文本信息,而超媒体文档还包括图形、声音等信息。
- 万维网以客户-服务器方式工作。
- 万维网使用统一资源定位符 URL来标志万维网上的各种文档,每一个文档在整个互联网的范围内具有唯一的标识符 URL。
- 使用超文本传送协议 HTTP在万维网客户程序与万维网服务器程序之间进行交互。HTTP 是一个应用层协议,它使用 TCP 连接进行可靠的传送。
3.2 统一资源定位符 URL
资源定位符 URL 是对可以从互联网上得到的资源的位置和访问方法的一种简洁表示。
URL 相当于一个文件名在网络范围的扩展,URL 是与互联网相连的机器上的任何可访问对象的一个指针
在 URL 中的字符对大小写没有要求。主机是存放资源的主机在互联网中的域名
3.3 超文本传送协议 HTTP
3.3.1 HTTP 的操作过程
作用:通过使用 HTTP 协议来传送必须的信息,使超文本的链接能够高效率地完成
从层次的角度看,HTTP 是面向事务的应用层协议。
- 每个万维网网点都有一个服务器进程,不断监听 TCP 的端口,以便发现是否有浏览器对它发出连接建立请求。
- 一旦监听到连接建立请求并建立了 TCP 连接之后,浏览器就向万维网服务器发出浏览某个页面的请求,服务器接着返回所请求的页面作为响应。最后,TCP 连接被释放。
- 在浏览器和服务器之间的请求和响应的交互,必须按规定的格式和规则。这些格式和规则就是超文本传输协议 HTTP
- HTTP 报文通常使用 TCP 连接传送
3.3.2 HTTP 的主要特点
- HTTP 使用了面向连接的 TCP作为运输层协议,保证了数据的可靠传输
- HTTP 协议本身是无连接的
- HTTP 是面向事务的客户服务器协议
- HTTP1.0 协议是无状态的
- HTTP/1.1 协议使用持续连接。即万维网服务器在发送响应后仍然在一段时间内保持这条连接,使同一个客户(如浏览器)和该服务器可以继续在这条连接上传送后续的 HTTP 请求报文和响应报文。
3.3.3 代理服务器
- 代理服务器又称为万维网高速缓存,它代表浏览器发出 HTTP 请求
- 代理服务器把最近的一些请求和响应暂存在本地磁盘中。当与暂存的请求相同的新请求到达时,代理服务器就把暂存的响应发送出去,而不需要按 URL 的地址再去互联网访问
3.3.4 HTTP 的报文结构
HTTP 有两类报文
- 请求报文:从客户向服务器发送请求报文
- 响应报文:从服务器到用户的回答
状态码:
- 1xx:表示通知信息,如请求收到了或正在进行处理
- 2xx:表示成功,如接受或知道了
- 3xx:表示重定向,表示要完成请求还需要采取进一步的行动
- 4xx:表示客户端出错,如请求中有错误的语法或不能完成
- 5xx:表示服务器出错,如服务器失效
3.3.5 Cookie
- 万维网站点可以使用 Cookie 来跟踪用户
- Cookie表示在 HTTP 服务器和客户端之间传递的状态信息。
- 使用 Cookie 的网站服务器为客户产生一个唯一的识别码。利用这个识别码,网站就能够跟踪该用户在该网站的活动。
4. 电子邮件
4.1 概述
电子邮件的重要标准:
- 简单邮件发送协议:SMTP
- 互联网文本报文格式
- 通用互联网邮件扩充 MIME
- 邮件读取协议:POP3 和 IMAP
电子邮件的组成:
- 用户代理(UA):用户与电子邮件系统的接口,基本功能:撰写、显示、处理和通信
- 邮件服务器:按照客户 - 服务器方式工作,在发送和读取邮件时使用两个不同的协议 SMTP,POP3,功能:发送和接收邮件,同时向发件人报告邮件发送的情况
- 邮件发送和读取协议:简单邮件发送协议 SMTP:用于在用户代理向邮件服务器或邮件服务器之间发送邮件,邮局协议 POP3:用于用户代理从邮件服务器读取邮件。SMTP 和 POP3(或 IMAP)都是使用 TCP 连接来传送邮件的,目的是可靠地传送邮件
发送和接受电子邮件的几个重要步骤:
- 发件人调用 PC 中的用户代理撰写和编辑要发送的邮件
- 发件人的用户代理把邮件用 SMTP 协议发给发送方邮件服务器
- SMTP 服务器把邮件临时存放在邮件缓存队列中,等待发送
- 发送方邮件服务器的 SMTP 客户与接收方邮件服务器的 SMTP 服务器建立 TCP 连接,然后把邮件缓存队列中的邮件依次发送出去
- 运行在接收方邮件服务器中的 SMTP 服务器进程收到邮件后,把邮件放入收件人的用户邮箱中,等待收件人进行读取
- 收件人在打算收信时,就运行 PC 中的用户代理,使用 POP3(或 IMAP)协议读取发送给自己的邮件
4.2 简单邮件传送协议 SMTP
- SMTP 规定了在两个相互通信的 SMTP 进程交换信息的方法
- SMTP 使用客户 - 服务器方式
- SMTP 基于 TCP 实现客户与服务器的通信
- SMTP 客户与服务器之间采用命令 - 响应方式进行交互
- SMTP 是一个基于文本的协议
- SMTP 基于 TCP 实现客户与服务器之间的通信
4.2.1 SMTP 通信的三个阶段
- 连接建立:连接是在发送主机的 SMTP 客户和接受主机的 SMTP 服务器之间建立的。SMTP 不使用中间的邮件服务器
- 邮件传送
- 连接释放:邮件发送完毕后,SMTP 要释放 TCP 连接
4.3 电子邮件的信息格式
- 一个电子邮件分为信封和内容两部分
4.4 邮件读取协议 POP3 和 IMAP
POP3:邮局协议第三个版本
- POP3 使用客户 - 服务器方式
- POP3 基于 TCP 实现客户与服务器的通信
- POP3 支持用户鉴别
IMAP:网际报文存取协议
- IMAP 使用客户 - 服务器方式
- IMAP 基于 TCP 实现客户与服务器的通信
- IMAP 是一个联机协议
4.5 基于万维网的电子邮件
4.6 通用互联网邮件扩充 MIME
增加邮件主体的结构,并定义传送非 ASCII 码的编码规则。