性能测试从零开始——LoadRunner入门(八)[2] 性能测试工具
S:220 cesoo.com
C:HELO
S:250 Hello Mike,pleased to meet you
C:MAIL FROM: Mike@cesoo.com
S:250 Mike@cesoo.com ... Sender OK
C:RCPT TO: rose@cesoo.com
S:250 rose@cesoo.com...Recipient OK
C:DATA
S:354 Enter mail,end with "." on a line by its self
C: I love you, Rose
C: .
S:250 Message aclearcase/" target="_blank" >ccepted for delivery
C:QUIT
S:221 cesoo.com closing connection
觉得难以置信么?这不是在写言情小说,而确确实实是客户端和邮件服务器通过SMTP协议在网络上交互的内容,网络协议就这么简单。客户总共发出了5个命令,分别为:HELO、MAIL FROM、RCPT TO、DATA和QUIT。这些命令又叫做原语,可理解为应用协议层上最原始最小的命令颗粒。服务器给每个客户端的命令发回应答,其中每个响应都由返回码和一些英语解释构成。这里需要指出的是,SMTP使用持久连接,也就是说,如果客户端有多个邮件消息需发送到同一个邮件服务器,那么所有这些消息可以在同一个TCP连接中发送。对于其中的每一个消息,客户端以一个新的“HELO”命令开始整个消息发送过程,但是QUIT命令要等到所有消息都发送完之后才发出。
8.1.3 POP3协议介绍
大家一听这个POP,读起来有点像中文中的泡泡,其实这是一个英文术语的缩写。POP的全称是 Post Office Protocol,即邮局协议,用于电子邮件的接收,它使用TCP的110端口。现在常用的是第三版,所以简称为 POP3。POP3仍采用Client/Server工作模式,Client被称为客户端,一般我们日常使用电脑都是作为客户端,而Server(服务器)则是POP3的邮件服务器。举个形象的例子:Server(服务器)是许多小信箱的集合,就像我们所居住楼房的信箱结构,而客户端就好比是一个人拿着钥匙去信箱开锁取信,一样的道理。
POP3和上面的SMTP协议一样,其实现也是一个客户端与服务器的对话过程。 软件测试
当我们单击了电子邮件软件中的收取按钮后,电子邮件软件首先会调用DNS协议对POP服务器进行解析IP地址,当IP地址被解析出来后,邮件程序便开始使用TCP协议连接邮件服务器的110端口,因为POP服务器是比较忙的,所以在这个过程中我们相对要等比较长的时间。当邮件程序成功地连上POP服务器后,其先会使用USER命令将邮箱的账号传给POP服务器,然后再使用PASS命令将邮箱的账号传给服务器。当完成这一认证过程后,邮件程序使用STAT命令请求服务器返回邮箱的统计资料,比如邮件总数和邮件大小等,然后LIST命令便会列出服务器里邮件数量。接下来邮件程序就会使用RETR命令接收邮件,接收一封后便使用DELE命令将邮件服务器中的邮件置为删除状态。当使用QUIT命令时,邮件服务器便会将置为删除标志的邮件给删了。通俗地讲,邮件程序从服务器接收邮件,其实就是一个对话过程,POP协议就是用在电子邮件中的一门语言。
8.1.4 IMAP协议介绍
用户使用POP3把邮件消息下载到本地机之后,就可以把它们移动到本地创建的文件夹中。用户然后可以删除邮件,移动邮件,按发信人名字或消息主题搜索邮件等。然而,所有这些邮件操作都是在本机上完成的。这对于游动的用户却构成了问题,游动用户更愿意在远程邮件服务器主机上维护邮件夹,这样从任何主机都可以访问它,使用POP3是不可能做到这一点的。
这时IMAP协议就应运而生了,同样也是邮件接收协议,但是IMAP却比POP3复杂得多,因为IMAP提供的特性比POP3多出不少。IMAP被设计成允许用户像对待本地邮箱那样操纵远程邮箱。具体地说,IMAP使得收信人能够在自己的邮件服务器主机中创建并维护多个存放邮件的文件夹。他们可以把邮件存入文件夹,也可以将邮件从一个文件夹转移到另一个文件夹,还可以在这些远程邮件夹中搜索匹配特定准则的邮件消息。IMAP的实现比POP3的实现复杂得多,原因之一就是IMAP服务器必须为每个用户维护一个文件夹层次结构。某个用户使用不同的客户端相继访问自己的IMAP服务器时,这个IMAP服务器为该用户维护并同步相应的状态。POP3服务器则相反,一旦用户退出当前的POP3会话,它们就不再为用户维护状态信息了。