# FTP

文件传输协议(File Transfer Protocol,FTP)与 HTTP 一样运行在 TCP 协议上,通过两个并行的 TCP 连接来传输文件,即控制连接和数据连接

  • 控制连接:在两个主机间传输控制信息,如用户名称、密码及命令指令
  • 数据连接:用于实际发送一个文件

对于 FTP 传输而言,控制连接贯穿了整个用户会话期间,但是每一次文件传输都需要建立一个新的数据连接(即数据连接是非连续的)

FTP 必须在整个会话期保留用户的状态(state),对每个进行中的用户会话的状态信息进行追踪,限制了 FTP 可以同时维护的会话数量,相比之下 HTTP 是无状态的,不必对每个用户状态进行追踪

# SMTP

因特网邮件系统有三个主要组成部分:用户代理(即邮件应用,如 Outlook)、邮件服务器简单邮件传输协议(Simple Mail Transfer Protocol,SMTP)

邮件传输过程:发送方的用户代理 -> 发送方的邮件服务器 -> 接收方的邮件服务器 -> 接收方邮箱

email

SMTP 是电子邮件主要的应用层协议,也使用 TCP 可靠数据传输,同大多数应用层协议一样,也分为客户端和服务器端。每台邮件服务器既是客户端也可以是服务器端,取决于是发送邮件还是接收邮件

工作方式

  • 客户 SMTP (发送方邮件服务器)建立一个到服务器端的 TCP 连接
  • 连接建立后,客户和服务器执行某些应用层的握手(传输信息前先相互介绍,如邮箱地址)
  • 彼此介绍后,依赖可靠的 TCP 传输无差错的传输邮件
  • 传输完成后,关闭 TCP 连接

对比 HTTP

  • HTTP 是一个拉协议(pull),预先在 Web 服务器上装载信息,客户使用 HTTP 从服务器上拉取信息;SMTP 则是一个推协议(push),即发送邮件服务器把文件推向接收邮件服务器
  • SMTP 要求每个报文使用 7 比特 ASCII 码格式,二进制文件(如图片)必须按 ASCII 码进行编码,HTTP 数据传输则不受这个限制

邮件访问协议:用于将邮件从接收方的邮件服务器传送到接收方的用户代理

  • 第三版邮局协议(POP3):从服务器上读取并删除邮件
  • 因特网邮件访问协议(IMAP):用户代理与服务器保持同步,不会自动删除服务器中的邮件,可以随时随地查看

基于 Web 的电子邮件

  • 使用普通的浏览器作为用户代理,浏览器与邮件服务器之间使用 HTTP 协议(无论收发邮件)
  • 邮件服务器间的发送和接收邮件仍然使用 SMTP 协议
Last Updated: 7/1/2020, 2:19:02 AM