本文主要是介绍关于IMAP协议——状态迁移,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
IMAP协议规范参考《RFC3501》,IMAP是与POP3对应的一种收邮件的协议,不同的是IMAP可以通过命令操作服务端存储的邮件,可以根据自己需要决定是否需要下载到本地,例如用户关注邮件头,则可以只获取邮件头的内容;而POP3则是只有把整个邮件下载到本地,那么只有当整个邮件下载到本地后,用户才能浏览邮件。
一旦客户端和服务器间的连接建立完成,一个IMAP4rev1连接就会处于4种状态中的某一种。初始状态在服务器的欢迎中标识。大多数命令只在特定的状态中才是正确的。当连接处于某状态时,客户端尝试一个不适当的命令是协议错误,服务器将以一个BAD或者NO(取决于服务器的实现)命令完成结果响应。
(1)未认证状态:在未认证状态下,大多数命令在得到许可前,客户端必须提供认证证书。除非连接已经是预认证了的,一个连接开始时,就进入了未认证状态。
(2)认证状态:在认证状态下,客户端是认证了的,它必须先选择一个邮箱以访问,才可以许可影响邮件的命令。当一个预认证连接开始、被认可的认证证书已经提供、选择一个邮箱发生错误后、或者一个成功的CLOSE命令后,均进入了认证状态。
(3)选中状态:在一个选中状态,一个邮箱被选中以访问。当一个邮箱被成功选中时,就进入了这个状态。
(4)注销状态: 在注销状态下,连接正在被终止。一个客户端请求(通过LOGOUT命令),或者客户端、服务器的单方面动作,都会导致进入这个状态。
(1)未预认证的连接(OK欢迎)
(2)预认证的连接(PREAUTH欢迎)
(3)被拒绝的连接(BYE欢迎)
(4)成功LOGIN或者AUTHENTICATE命令
(5)成功的SELECT或者EXAMINE命令
(6)CLOSE命令,或者失败的SELECT、EXAMINE命令
(7)LOGOUT命令,服务器关闭,或者连接已关闭
这篇关于关于IMAP协议——状态迁移的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!