先决条件 – HTTP、FTP 和 SMTP
HTTP 代表超文本传输协议,FTP 代表文件传输协议,而 SMTP 代表简单邮件传输协议。这三者都用于通过计算机网络传输信息,并且是当今互联网不可或缺的一部分。
为什么我们需要三个协议来传输文件?
我们需要这三种协议,因为它们都用于不同的目的。它们是 HTTP、FTP 和 SMTP。
- HTTP 是万维网 (WWW) 的支柱。它定义了 Web 浏览器(如 Firefox、Chrome)和 Web 服务器通信所使用的消息格式,同时还定义了 Web 浏览器应如何响应特定的 Web 浏览器请求。
- 顾名思义,FTP 是用于通过通信网络传输文件的底层协议。它建立两个 TCP 连接:用于验证用户身份的控制连接和用于传输文件的数据连接。
- 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 将邮件的所有内容放在一条消息中。