POP3协议文档Word格式.docx

上传人:b****6 文档编号:8506825 上传时间:2023-05-11 格式:DOCX 页数:15 大小:22.05KB
下载 相关 举报
POP3协议文档Word格式.docx_第1页
第1页 / 共15页
POP3协议文档Word格式.docx_第2页
第2页 / 共15页
POP3协议文档Word格式.docx_第3页
第3页 / 共15页
POP3协议文档Word格式.docx_第4页
第4页 / 共15页
POP3协议文档Word格式.docx_第5页
第5页 / 共15页
POP3协议文档Word格式.docx_第6页
第6页 / 共15页
POP3协议文档Word格式.docx_第7页
第7页 / 共15页
POP3协议文档Word格式.docx_第8页
第8页 / 共15页
POP3协议文档Word格式.docx_第9页
第9页 / 共15页
POP3协议文档Word格式.docx_第10页
第10页 / 共15页
POP3协议文档Word格式.docx_第11页
第11页 / 共15页
POP3协议文档Word格式.docx_第12页
第12页 / 共15页
POP3协议文档Word格式.docx_第13页
第13页 / 共15页
POP3协议文档Word格式.docx_第14页
第14页 / 共15页
POP3协议文档Word格式.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

POP3协议文档Word格式.docx

《POP3协议文档Word格式.docx》由会员分享,可在线阅读,更多相关《POP3协议文档Word格式.docx(15页珍藏版)》请在冰点文库上搜索。

POP3协议文档Word格式.docx

所有响应也是由CRLF对结束。

现在有两种状态码,“确定”("

+OK"

)和“失败”("

-ERR"

)。

对于特定命令的响应是由许多字符组成的。

在这些情况中,下面一一表述:

在发送第一行响应和一个CRLF之后,任何的附加信息行发送,他们也由CRLF对结束。

当所有信息发送结束时,发送最后一行,包括一个结束字符(十进制码46,也就是“.”)和一个CRLF对。

如果信息中的任何一行以结束字符开始,此行就是通过在那一行预先装入结束而进行字符填充的。

因此,多行响应由五个CRLF.CRLF结束。

当检测多行响应时,客户检测以确认此行是否以结束字符开始。

如果是的,而且其后的字符不是CRLF,此行的第一个字符(结束字符)将被抛弃;

如果其后紧跟CRLF,从POP服务器来的响应终止,包括.CRLF的行也不被认为是多行响应的一部分了。

在生命周期中,POP3会话有几个不同的状态。

一旦TCP连接被打开,而且POP3服务器发送了确认信息,此过程就进入了“确认”状态。

在此状态中,客户必须向POP3服务器确认自己是其的客户。

一旦确认成功,服务器就获取与客户邮件相关的资源,此时这一过程进入了“操作”状态。

在此状态中,客户提出服务,当客户发出QUIT命令时,此过程进入了“更新”状态。

在此状态中,POP3服务器释放在“操作”状态中取得的资源,并发送消息,终止连接。

POP3服务器可以拥有一个自动退出登录的记时器。

此记时器必须至少可以记录10分钟。

这样从客户发送的消息才可能刷新此记时器。

当记时器失效时,POP3会话并不进入“更新”状态,而是关闭TCP连接,而且不删除任何消息,不向客户发送任何响应。

4.“确认”状态

一时TCP连接由POP3客户打开,POP3服务器发送一个单行的确认。

这个消息可以是由CRLF结束的任何字符。

例如,它可以是:

S:

+OKPOP3serverready

注意:

这个消息是一个POP3应答。

POP3服务器应该给出一个“确定”响应作为确认。

此时POP3会话就进入了“确认”状态。

此时,客户必须向服务器证明它的身份。

在文档中介绍两种可能的处理机制,一种是USER和PASS命令,另一种是在后面要介绍的APOP命令。

用USER和PASS命令进行确认过程,客户必须首先发送USER命令,如果POP3服务器以“确认”状态码响应,客户就可以发送PASS命令以完成确认,或者发送QUIT命令终止POP3会话。

如果POP3服务器返回“失败”状态码,客户可以再发送确认命令,或者发送QUIT命令。

当客户发送了PASS命令后,服务器根据USER和PASS命令的附加信息决定是否允许访问相应的存储邮件。

一旦服务器通过这些数据决定允许客户访问储存邮件,服务器会在邮件上加上排它锁,以防止在进入“更新”状态前对邮件的改变。

如果成功获得了排它锁,服务器返回一个“确认”状态码。

会话进入“操作状态”,同时没有任何邮件被标记为删除。

如果邮件因为某种原因不能打开(例如,排它锁不能获得,客户不能访问相应的邮件或者邮件不能进行语法分析),服务器将返回“失败”状态码。

在返回“失败”状态码后,服务器会关闭连接。

如果服务器没有关闭连接,客户可以重新发送确认命令,重新开始,或者发送QUIT命令。

在服务器打开邮件后,它为每个消息指定一个消息号,并以八进制表示每个消息的长度。

第一个消息被指定为1,第二个消息被指定为2,以此类推,第N个消息被指定为N。

在POP3命令和响应中,所以的消息号和长度以十进制表示。

下面是对上述三条命令的总结:

命令格式

参数

限制

响应

例子

USERname

指定邮箱的字符串,这对服务器至关重要

仅在USER和PASS命令失败后或在“确认”状态中使用

+OK:

有效邮箱;

-ERR:

无效邮箱

C:

USERmrose

+OKmroseisarealhoopyfrood

...

USERfrated

-ERRsorry,nomailboxforfratedhere

PASSstring

口令

仅在“确认”状态中USER命令成功后使用(因为此命令只有一个参数,因此空格不再作为分隔符,而作为口令的一部分)

邮件锁住并已经准备好;

-ERR无效口令或无法锁住邮件

PASSsecret

+OKmrose'

smaildrophas2messages(320octets)

USERmrose

-ERRmaildropalreadylocked

QUIT

(无)

+OK

QUIT

+OKdeweyPOP3serversigningoff

5.“操作”状态

一旦客户向服务器成功地确认了自己的身份,服务器将锁住并打开相应的邮件,这时POP3会话进入“操作”状态。

现在客户可以重复下面的POP3命令,对于每个命令服务器都会返回应答。

最后,客户发送QUIT命令,会话进入“更新”状态。

下面是在“操作”状态中可用的命令:

命令

说明

STAT

仅在“操作”状态下可用。

服务器以包括邮件信息的响应做为“确认”。

为简化语法分析,所有的服务器要求使用邮件列表的特定格式。

“确认”响应由一个空格,以八进制表示的邮件数目,一个空格和邮件大小。

这是最小实现,高级的实现还需要别的信息。

被标记为删除的信件不在此列。

nnmm

STAT

+OK2320

LIST[msg]

信件数目(可选),如果出现,不包括标记为删除的信件。

如果给出了参数,且POP3服务器返回包括上述信息的“确认”,此行称为信息的“扫描表”。

如果没有参数,服务器返回“确认”响应,此响应便以多行给出。

在初的+OK后,对于每个信件,服务器均给出相应的响应。

为简化语法分析,所有服务器要求使用扫描表的特定格式。

它包括空格,每个邮件的确切大小。

其后跟扫描表;

无扫描。

LIST

+OK2messages(320octets)

1120

2200

.

LIST2

+OK2200

LIST3

-ERRnosuchmessage,only2messagesinmaildrop

RETRmsg

不包括标记为删除的信件数目。

如果服务器返回“确认”,给出的响应是多行的。

在初始的+OK后,服务器发送与给定信息号对应的信息,对于多行响应,注意字节填充终止符。

消息在其后;

其后无消息。

RETR1

+OK120octets

<

thePOP3serversendstheentiremessagehere>

DELEmsg

服务器将此信件标记为删除,以后任何关于此信件的操作就会产生错误。

服务器在会话进入“更新”状态前不会真正删除此信件。

信件被删除;

无此信件。

DELE1

+OKmessage1deleted

DELE2

-ERRmessage2alreadydeleted

NOOP

服务器仅返回“确认”。

NOOP

+OK

RSET

所有被标记为删除的信件复位,服务器返回“确认”。

RSET

+OKmaildrophas2messages(320个字符)

6.“更新”状态

当客户在“操作”状态下发送QUIT命令后,会话进入“更新”状态。

(注意:

如果客户在“确认”状态下发送QUIT后,会话并不进入“更新”状态。

如果会话因为QUIT命令以外的原因中断,会话并不进入“更新”状态,也不从服务器中删除任何信件。

服务器删除所有标记为删除的信件,然后释放排它锁,并返回这些操作的状态码。

最后TCP连接被中断。

+OKdeweyPOP3serversigningoff(清空标记邮件)

QUIT

+OKdeweyPOP3serversigningoff

7.可选的POP3命令

以上讨论的命令是对POP3服务的最小实现。

以下说明的可选命令允许客户更方便地处理信件,这是一个比较一般的POP3服务实现。

TOPmsgn

一个是未被标记为删除的信件数,另一个是非负数(必须提供)

仅在“操作”状态下使用。

如果服务器返回“确认”,响应是多行的。

在初始的+OK后,服务器发送信件头,一个空行将信件头和信件体分开,对于多行响应要注意字节填充终止符。

如果客户要求的行数比信件体中的行数大,服务器会发送整个信件。

其后有信件头;

其后无类似消息。

TOP110

服务器发送消息头,一个空行和信件的头10行>

TOP1003

-ERRnosuchmessage

UIDL[msg]

信件数(可选)。

如果给出信件数,不包括被标记为删除的信件。

如果给出了参数,且POP3服务器返回包括上述信息的“确认”,此行称为信息的“独立-ID表”。

此行叫做信件的“独立-ID表”。

为简化语法分析,所有服务器要求使用独立-ID表的特定格式。

它包括空格和信件的独立-ID。

信件的独立-ID由0x21到0x7E字符组成,这个符号在给定的存储邮件中不会重复。

信件不包括被标记为删除的信件。

其后是独立-ID表;

其后无类似信件。

UIDL

1whqtswO00WBw418f9t5JxYwZ

2QhdPYR:

00WBw1Ph7x7

UIDL2

+OK2QhdPYR:

UIDL3

APOPnamedigest

指定邮箱的字串和MD5摘要串。

仅在POP3确认后的“确认”状态中使用。

通常,每个POP3会话均以USER/PASS互换开始。

这导致了用户名和口令在网络上的显式传送,这不会造成什么危险。

但是,许多客户经常连接到服务检查信件。

通常间隔时间比较短,这就加大了泄密的可能性。

另一种提供“确认”过程的方法是使用APOP命令。

实现APOP命令的服务器包括一个标记确认的时间戳。

例如:

在UNIX上使用APOP命令的语法为:

process-ID.clock@hostname,其中进程-ID是进程的十进制的数,时钟是系统时钟的十进制表示,主机名与POP3服务器名一致。

客户记录下此时间戳,然后以送APOP命令。

name语法和USER命令一致。

Digest是采用MD5算法产生的包括时间戳和共享密钥的字串。

此密钥是客户和服务器共知的,应该注意保护此密钥,如果泄密,任何人都能够以用户身份进入服务器。

如果服务器接到APOP命令,它验证digest,如果正确,服务器返回“确认”,进入“操作”状态;

否则,给出“失败”并停留在“确认”状态。

共享密钥的长度增加,解读它的难度也相应增加,这个密钥应该是长字符串。

邮件锁住并准备好;

拒绝请求。

+OKPOP3serverready<

1896.697170952@dbc.mtview.ca.us>

APOPmrosec4c9334bac560ecc979e58001b3e22fb

+OKmaildrophas1message(369octets)

在此例子中,共享密钥<

tanstaaf由MD5算法生成,它产生了digest值,c4c9334bac560ecc979e58001b3e22fb

8.POP3命令总结

基础的POP3命令:

USERname在“确认”状态有效

STAT在“操作”状态有效

QUIT在“更新”状态有效

可选的POP3命令:

APOPnamedigest在“确认”状态有效

TOPmsgn在“操作”状态有效

POP3响应:

-ERR

除了STAT,LIST和UIDL的响应外,其它命令的响应均为"

和"

响应后的所有文本将被客户略去。

9.POP3会话实例

等待连接到TCP端口110>

打开连接>

STAT

LIST

RETR1

服务器发送信件1>

DELE1

RETR2

+OK200octets

服务器发送信件2>

+OKmessage2deleted

+OKdeweyPOP3serversigningoff(maildropempty)

关闭连接>

等待下一次连接>

10.消息格式

在会话过程中的消息格式都假定与Internet文本消息格式标准一致。

应该注意的是,由于各个服务器对于换行符的处理不同,因此计数不一定相同。

通常,在“确认”状态中,服务器能够以八进制计算信件的大小。

例如,如果在打开储存邮件时服务器内部认定换行符代表一个字符,一般服务器在计算它时作为两个字符计。

注意,以终止符开始的消息行不被计数两次,因为客户将在接收到多行响应后删除所有字节填充。

11.安全性考虑

可以推测,使用APOP命令可以提供会话期间的保护。

相应的,同时实现PASS和APOP命令的服务器只允许用户以一种方式访问;

也就是说要么使用USER/PASS组合,要么使用APOP命令,不能同时使用两个。

而且,注意随着共享密钥长度的增加,解读的难度也就上升了。

服务器要提供用户名时不给出任何响应,不给出任何暗示此用户名是否正确。

而口令却在网络上显式传送;

使用RETR和TOP命令在网络上显式传送信件。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2