4. 授权状态 (The AUTHORIZATION State)
一旦POP3客户端打开了TCP连接,POP3服务器就会发出一行问候语。这可以是任何正面响应。例如:
S: +OK POP3 server ready
POP3会话现在处于授权状态 (AUTHORIZATION state)。客户端现在必须向POP3服务器标识和认证自己。本文档描述了两种可能的机制:USER和PASS命令组合以及APOP命令。[RFC1734] 中描述了其他认证机制。虽然没有单一的认证机制是所有POP3服务器都必须支持的,但POP3服务器当然必须至少支持一种认证机制。
一旦POP3服务器通过使用任何认证命令确定应该授予客户端访问适当邮件投递箱的权限,POP3服务器就会在邮件投递箱上获取独占访问锁 (exclusive-access lock),以防止在会话进入更新状态之前修改或删除消息。如果成功获取锁,POP3服务器以正面状态指示符响应。POP3会话现在进入事务状态 (TRANSACTION state),没有消息被标记为已删除。如果由于某种原因无法打开邮件投递箱(例如,无法获取锁、客户端被拒绝访问适当的邮件投递箱或无法解析邮件投递箱),POP3服务器以负面状态指示符响应。(如果获取了锁但POP3服务器打算以负面状态指示符响应,POP3服务器必须在拒绝命令之前释放锁。)返回负面状态指示符后,服务器可以关闭连接。如果服务器不关闭连接,客户端可以发出新的认证命令并重新开始,或者客户端可以发出QUIT命令。
POP3服务器打开邮件投递箱后,它为每条消息分配一个消息编号 (message-number),并以八位字节 (octets) 为单位记录每条消息的大小。邮件投递箱中的第一条消息被分配消息编号"1",第二条被分配"2",依此类推,因此邮件投递箱中的第n条消息被分配消息编号"n"。在POP3命令和响应中,所有消息编号和消息大小都以十进制表示。
以下是授权状态中QUIT命令的摘要:
QUIT 命令
参数 (Arguments): 无
限制 (Restrictions): 无
可能的响应 (Possible Responses):
+OK
示例 (Examples):
C: QUIT
S: +OK dewey POP3 server signing off
术语表 (Glossary):
- AUTHORIZATION state (授权状态): 初始身份验证阶段
- TRANSACTION state (事务状态): 主要操作阶段
- UPDATE state (更新状态): 最终清理阶段
- exclusive-access lock (独占访问锁): 防止并发修改
- message-number (消息编号): 每条消息的数字标识符
- maildrop (邮件投递箱): 服务器上的用户邮箱
- authentication (认证): 身份验证过程
协议约定 (Protocol conventions):
S:表示服务器发送C:表示客户端发送