现在我们都经常使用微信、QQ等IM工具,我们称之为实时沟通软件。可能大家还不知道微信的前身是QQ邮箱里的一个小插件。今天我们来介绍一下邮件在互联网中是如何传播的,是以什么
现在我们都经常使用微信、QQ等IM工具,我们称之为实时沟通软件。可能大家还不知道微信的前身是QQ邮箱里的一个小插件。今天我们来介绍一下邮件在互联网中是如何传播的,是以什么样的形式存在的。
电子邮件诞生的更早,早在几十年前。虽然有网络,但是不同的人相互交流还是很麻烦的。计算机的底层是二进制。如何把自己想表达的东西变成二进制,对方也能顺利看到,一直是个难题。所以大家发明了一个协议叫SMTP。从计算机网络的角度来看,其传输层采用TCP协议传输。两台机器建立TCP连接后,双方开始控制这个连接上的响应和数据传输。这种模式就像一个人直接把电话线拉到另一个家里,可以随时交流。
但是这种模式有什么问题呢?即如果对方不在线,则无法建立连接。如果对方电脑没有开机,你就永远无法给对方发邮件。如果你想给对方发邮件,你得提前打电话告诉他,哥们,我要给你发邮件了。赶紧上线。
想象一下,如果我们不在线,就无法收发信息。这会很麻烦。只要有麻烦,就会有商机。很快,就有厂商愿意用科技的力量帮你解决这个问题。比如国外有谷歌、雅虎这样的邮件服务商,国内有搜狐、网易。他们是怎么解决的?就是提供一个服务器来存放大家的东西。就像双十一一样。我们经常有快递。我们不可能每次快递来都有空收快递。于是,我们跟快递员说,先把这个东西留在物业,等有空的时候,再去物业问问有没有新的快递。
去物业看看有没有新的快件,就是著名的POP3协议。谷歌雅虎会提供一些支持POP3协议的服务器供大家询问有没有新邮件。在此之前,发送方会使用SMTP协议将将要发送的内容发送到服务器,服务器会将其临时保存,等待用户领取。
我们举个例子。用户A从华为邮箱发邮件给网易邮箱的用户B。
用户A在自己的电脑上编写邮件,填上收件人的地址,点击发送。当然,这里他必须知道收件人的地址,格式为xxx@yyy这里,yyy表示的是邮箱的提供厂商,可以是谷歌的、网易的、也可能是中国移动的。xxx表示对方在这个厂商注册的账号的信息。华为的服务器收到这份邮件,他首先判断A是否是自己的用户,然后开始解析发送地址,发现发送的对象是网易服务商的,于是开始跟网易的服务器建立连接,把这个邮件发给网易的服务器。网易的服务器收到腾讯发送过来的邮件,检查B发现是自己的用户,接收这份邮件,并转发到自己的POP服务器,等待着用户来拉取。用户B登上网易邮箱,去网易的POP服务器上面询问有没有自己的最新邮件,然后接受到自己的邮件。
那就是上面邮件的神奇互联网之旅。当然还有各种反垃圾邮件的检查和寻址,就不赘述了。我们学习了电子邮件中最关键的两个协议,SMTP和POP3,这是程序员在面试中经常问到的问题。相信看完这些,大家已经了解了邮件的基本流程。关注我,我们一起学习,一起进步。