📜  HTTP、FTP 和 SMTP 之间有什么区别?

📅  最后修改于: 2021-09-28 10:08:06             🧑  作者: Mango

先决条件 – HTTP、FTP 和 SMTP
HTTP 代表超文本传输协议,FTP 代表文件传输协议,而 SMTP 代表简单邮件传输协议。这三者都用于通过计算机网络传输信息,并且是当今互联网不可或缺的一部分。

为什么我们需要三个协议来传输文件?
我们需要这三种协议,因为它们都用于不同的目的。它们是 HTTP、FTP 和 SMTP。

  1. HTTP 是万维网 (WWW) 的支柱。它定义了 Web 浏览器(如 Firefox、Chrome)和 Web 服务器通信所使用的消息格式,同时还定义了 Web 浏览器应如何响应特定的 Web 浏览器请求。
  2. 顾名思义,FTP 是用于通过通信网络传输文件的底层协议。它建立两个 TCP 连接:用于验证用户身份的控制连接和用于传输文件的数据连接。
  3. SMTP 是全球电子邮件服务器用来相互通信的工具,以便您在晚上 11:59 提交的作业在截止日期内到达您教授的收件箱。

它们的实现有何不同?
这三个都是应用层协议,使用 TCP 作为底层传输层协议。但是他们使用它的方式以及一般的实施方式大不相同。下表简要区分了它们。

Parameter HTTP FTP SMTP
Port number 80 20 and 21 25
Type of band transfer In-band Out-of-band In-band
State Stateless Maintains state
Number of TCP connections 1 2 (Data Connection and Control Connection) 1
Type of TCP connection Can use both Persistent and Non-persistent Persistent for
Control connection.
Non-persistent for
Data Connection
Persistent
Type of Protocol Pull Protocol (Mainly) Push Protocol (Primarily)
Type of Transfer Transfer files between Web server and Web client Transfer directly between computers Transfers mails via Mail Servers
  • HTTP 是无状态的。无状态协议意味着 HTTP Web 服务器不维护哪个请求来自哪个用户。因此,为了向用户提供定制服务,HTTP 使用 Cookie。
  • FTP是Out-of-band,因为它使用单独的通道来发送数据(Data connection),就像发送控制信息(Control connection)一样。
  • 由于 SMTP 比 HTTP 更古老,因此它将所有消息限制为 7 位 ASCII 格式。而 HTTP 没有这样的限制。
  • HTTP 将每个文件封装在不同的 HTTP 消息中。而 SMTP 将邮件的所有内容放在一条消息中。