解释一下http和smtp协议之间的区别。虽然第一个是针对Web的,第二个是针对电子邮件的,但它们的数据传输方式又有何不同?


回答 1:

这是一项家庭作业,对吗? 还有研究生层面的面试问题吗? 所有信息都是公开的,因此索取简单摘要的唯一价值不是将摘要实际用于应用目的,而是重复摘要以声称具有理解力。

但是SMTP和HTTP是文本协议。 您可以使用telnet命令与服务器对话,并通过键入命令并阅读响应来试用它们。 Google的“ telnet smtp服务器”和“ telnet http服务器”非常有趣,并且可以学到一些知识,这将使家庭作业不再那么无聊,并且使您真正能够在工作或大学面试中谈论它。

Web上的许多Web或邮件服务器都是经过加密的,因此您可能必须在本地安装一个服务器以浏览协议。


回答 2:

两种协议都用于将文件从一个主机传输到另一台主机:HTTP将文件(也称为对象)从Web服务器传输到Web客户端(通常是浏览器); SMTP将文件(即电子邮件)从一个邮件服务器传输到另一台邮件服务器。 传输文件时,持久HTTP和SMTP都使用持久连接。 因此,这两个协议具有共同的特征。 但是,有重要的区别。 首先,HTTP主要是一种拉协议-有人在Web服务器上加载信息,而用户在方便时使用HTTP从服务器拉信息。 特别是,TCP连接由要接收文件的机器启动。 另一方面,SMTP主要是一种推送协议-发送邮件服务器将文件推送到接收邮件服务器。 特别是,TCP连接由要发送文件的机器启动。

我们前面提到的第二个区别是SMTP要求每条消息(包括每条消息的主体)必须为7位ASCII格式。 如果消息包含的字符不是7位ASCII(例如带有重音符号的法语字符)或二进制数据(例如图像文件),则必须将消息编码为7位ASCII。 HTTP数据不强加此限制。

第三个重要区别涉及如何处理由文本和图像(以及其他可能的媒体类型)组成的文档。 HTTP将每个对象封装在其自己的HTTP响应消息中。 Internet邮件将邮件的所有对象放置在messasge上。