文件相关的应用层协议

整理计网分层体系结构之应用层 文件相关协议

相关概念

  • Web页面(文档)是由对象组成的。一个对象是单个文件(如HTML文件、JPEG图片或视频片段, 都可以通过url地址来寻址)。
  • 大多Web界面包含一个HTML基本文件及多个引用对象,这种包含关系通过引用对象的url地址完成。
  • url地址又分为两部分(存放对象的服务器主机名+路径名)。
    web页面可以作为响应返回
  • 推协议、拉协议。推协议,可理解为信息供应方驱动;拉协议,可理解为信息需求方驱动。

协议

包括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服务器交互,可以完成本地文件与远程文件的传递。

  1. 用户需要提供远程主机的主机名,本地主机的FTP客户进程与远程主机的FTP服务器进程建立TCP连接。
  2. 该用户提供用户标识口令,作为FTP命令的一部分在TCP连接上传送。

  FTP使用两个并行的TCP连接。其中一个是控制连接,用于用户与远程服务端传递命令; 另一个是数据连接,用于数据上传与下载。FTP有独立的控制连接,也称FTP的控制信息是带外 out-of-band传送的。


3. SMTP

  作为一种异步通信媒介,电子邮件流行已久。
关键组件:

  • 用户代理:允许用户阅读、编辑报文的程序,例如浏览器。
  • 邮件服务器:电子邮件体系的核心,管理着用户的邮箱。

SMTP基本流程:

  1. 用户代理程序编辑好邮件内容及目标地址
  2. 发送该报文到 自己的邮件服务器。
  3. 邮件服务器将该报文保存在 报文队列 中。
  4. 邮件服务器上的SMTP客户端发现报文队列中 此报文, 创建一个到 目标地址 邮件服务器SMTP客户端的TCP连接。
  5. 经过初始的SMTP握手后, SMTP通过TCP连接发送 报文。 目标地址邮件服务器 收到该报文, 并放入目标用户的邮箱中。
  6. 目标用户 可以运行用户代理 阅读该报文。
    alice向bob发一条报文

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 与电子邮件客户端之间的双向通信,客户端的操作都会反馈到服务器上,对邮件进行的操作,服务器上的邮件也会做相应的动作。更好地支持了从多个不同设备中随时访问新邮件。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值