整理计网分层体系结构之应用层 文件相关协议
相关概念
- Web页面(文档)是由对象组成的。一个对象是单个文件(如HTML文件、JPEG图片或视频片段, 都可以通过url地址来寻址)。
- 大多Web界面包含一个HTML基本文件及多个引用对象,这种包含关系通过引用对象的url地址完成。
- url地址又分为两部分(存放对象的服务器主机名+路径名)。
- 推协议、拉协议。推协议,可理解为信息供应方驱动;拉协议,可理解为信息需求方驱动。
协议
包括HTTP、FTP、SMTP、POP3、IMAP
1. HTTP
HTTP是Web的核心,HTTP定义了Web客户向Web服务器请求Web页面的方式,以及服务器向客户端传送Web界面的方式。
HTTP基于TCP协议,当客户端服务器的TCP连接建立完成后,客户向自己的套接字接口发送HTTP请求,并从套接字接口接收返回的HTTP响应。同样,服务器在其套接字接口接收HTTP请求,向其套接字接口发送HTTP响应。
HTTP默认使用持续连接,也可以转换为非持续连接。更准确的说是带流水线的持续链接,理解为多个HTTP请求可以连续发送,不必等待响应返回后再进行请求。一批HTTP请求对应一批HTTP响应。
HTTP是无状态协议。服务端不必保存用户状态,简单高效,但也无法标识用户。
2. FTP
用户通过FTP用户代理 与 FTP服务器交互,可以完成本地文件与远程文件的传递。
- 用户需要提供远程主机的主机名,本地主机的FTP客户进程与远程主机的FTP服务器进程建立TCP连接。
- 该用户提供用户标识和口令,作为FTP命令的一部分在TCP连接上传送。
FTP使用两个并行的TCP连接。其中一个是控制连接,用于用户与远程服务端传递命令; 另一个是数据连接,用于数据上传与下载。FTP有独立的控制连接,也称FTP的控制信息是带外 out-of-band传送的。
3. SMTP
作为一种异步通信媒介,电子邮件流行已久。
关键组件:
- 用户代理:允许用户阅读、编辑报文的程序,例如浏览器。
- 邮件服务器:电子邮件体系的核心,管理着用户的邮箱。
SMTP基本流程:
- 用户代理程序编辑好邮件内容及目标地址
- 发送该报文到 自己的邮件服务器。
- 邮件服务器将该报文保存在 报文队列 中。
- 邮件服务器上的SMTP客户端发现报文队列中 此报文, 创建一个到 目标地址 邮件服务器SMTP客户端的TCP连接。
- 经过初始的SMTP握手后, SMTP通过TCP连接发送 报文。 目标地址邮件服务器 收到该报文, 并放入目标用户的邮箱中。
- 目标用户 可以运行用户代理 阅读该报文。
4. POP3
Post Office Protocol-V3,第三版邮局协议。是一个推协议(push protocol)。
上图中,第6步中与现实不太相符。现实中邮件服务器多为ISP来维护,用户仅在个人PC上运行用户代理程序即可。而用户代理从邮件服务器获取自己邮件,这里需要一个拉协议。
POP3基于TCP,协议简单,可以完成鉴别用户,事务处理,更新等操作。
5. IMAP
Internet Message Access Protocol。
POP3 需要down到本地,离线的操作并不会影响服务端。保存本地的严苛条件,某些移动用户可能无法达成。
IMAP 使用服务器层级目录,能够维护用户状态,允许用户代理获取报文的部分内容。
总结
HTTP与FTP的对比
HTTP、FTP都是文件传输协议,都是基于TCP协议。还是有些区别的。
-
HTTP面向网页,FTP面向文件。
-
HTTP使用的是一个TCP连接,命令与数据公用同一TCP连接。控制信息是带内 in-band传输的。
FTP使用两个并行的TCP连接,含有独立的控制连接,也称FTP的控制信息是带外 out-of-band传送的。 -
HTTP默认是持续连接;而FTP的控制连接是持续连接,数据连接非持续连接(每次传输数据都要新建连接)。换句话说,控制连接贯穿整个用户会话期间。
-
HTTP是无状态协议,不会保留用户状态。而FTP会在整个会话期间保留用户状态。
HTTP与SMTP的对比
同。都是基于TCP的文件传输协议。 HTTP从Web服务器向Web客户端(浏览器)传输文件(也叫对象),SMTP从一个邮件服务器到另一个邮件服务器传输文件(即电子邮件报文)。都采用持续链接(HTTP默认持续连接)。
异。
- HTTP是一个拉协议(pull protocol),用户从服务器上拉取信息。
SMTP是一个推协议(push protocol),发送方邮件服务器把文件推送到接收邮件服务器。 - SMTP报文采用7bit ASCII码格式。HTTP没有这种限制。
- 对于既包含文本有包含其他类型的文档,HTTP将其封装在响应报文中,SMTP将所有的报文对象放在一个报文中。
HTTP与SMTP的对比
-
POP3 协议允许电子邮件客户端下载服务器上的邮件,但是在客户端的操作(如移动邮件、标记已读等),不会反馈到服务器上。
-
IMAP 提供webmail 与电子邮件客户端之间的双向通信,客户端的操作都会反馈到服务器上,对邮件进行的操作,服务器上的邮件也会做相应的动作。更好地支持了从多个不同设备中随时访问新邮件。