⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pop3协议.htm

📁 internet协议集
💻 HTM
📖 第 1 页 / 共 2 页
字号:
      (320个字符)</FONT></P></TD></TR></TBODY></TABLE>
      <P><FONT face=宋体 size=3> </P>
      <P> </P>
      <P>6.“更新”状态</P>
      <P> </P>
      <P>当客户在“操作”状态下发送QUIT命令后,会话进入“更新”状态。(注意:如果客户在“确认”状态下发送QUIT后,会话并不进入“更新”状态。)</P>
      <P>如果会话因为QUIT命令以外的原因中断,会话并不进入“更新”状态,也不从服务器中删除任何信件。</FONT></P>
      <TABLE cellSpacing=1 cellPadding=7 width="100%" border=1>
        <TBODY>
        <TR>
          <TD vAlign=top width=33><FONT face=宋体 size=3>命令</FONT></TD>
          <TD vAlign=top width=49><FONT face=宋体 size=3>参数</FONT></TD>
          <TD vAlign=top width=49><FONT face=宋体 size=3>限制</FONT></TD>
          <TD vAlign=top width=173><FONT face=宋体 size=3>说明</FONT></TD>
          <TD vAlign=top width=48><FONT face=宋体 size=3>响应</FONT></TD>
          <TD vAlign=top width=295><FONT face=宋体 size=3>例子</FONT></TD></TR>
        <TR>
          <TD vAlign=top width=33><FONT face=宋体 size=3>QUIT</FONT></TD>
          <TD vAlign=top width=49><FONT face=宋体 size=3>(无)</FONT></TD>
          <TD vAlign=top width=49><FONT face=宋体 size=3>(无)</FONT></TD>
          <TD vAlign=top width=173><FONT face=宋体 
            size=3>服务器删除所有标记为删除的信件,然后释放排它锁,并返回这些操作的状态码。最后TCP连接被中断。</FONT></TD>
          <TD vAlign=top width=48><FONT face=宋体 size=3>+OK</FONT></TD>
          <TD vAlign=top width=295><FONT face=宋体 size=3>C: QUIT
            <P>S: +OK dewey POP3 server signing off (清空标记邮件)</P>
            <P>...</P>
            <P>C: QUIT</P>
            <P>S: +OK dewey POP3 server signing off 
      </FONT></P></TD></TR></TBODY></TABLE>
      <P><FONT face=宋体 size=3> </P>
      <P> </P>
      <P>7.可选的POP3命令</P>
      <P> </P>
      <P>以上讨论的命令是对POP3服务的最小实现。以下说明的可选命令允许客户更方便地处理信件,这是一个比较一般的POP3服务实现。</FONT></P>
      <TABLE cellSpacing=1 cellPadding=7 width="100%" border=1>
        <TBODY>
        <TR>
          <TD vAlign=top width=48><FONT face=宋体 size=3>命令</FONT></TD>
          <TD vAlign=top width=62><FONT face=宋体 size=3>参数</FONT></TD>
          <TD vAlign=top width=49><FONT face=宋体 size=3>限制</FONT></TD>
          <TD vAlign=top width=251><FONT face=宋体 size=3>说明</FONT></TD>
          <TD vAlign=top width=73><FONT face=宋体 size=3>响应</FONT></TD>
          <TD vAlign=top width=337><FONT face=宋体 size=3>例子</FONT></TD></TR>
        <TR>
          <TD vAlign=top width=48><FONT face=宋体 size=3>TOP msg n</FONT></TD>
          <TD vAlign=top width=62><FONT face=宋体 
            size=3>一个是未被标记为删除的信件数,另一个是非负数(必须提供)</FONT></TD>
          <TD vAlign=top width=49><FONT face=宋体 size=3>仅在“操作”状态下使用。</FONT></TD>
          <TD vAlign=top width=251><FONT face=宋体 
            size=3>如果服务器返回“确认”,响应是多行的。在初始的+OK后,服务器发送信件头,一个空行将信件头和信件体分开,对于多行响应要注意字节填充终止符。
            <P>注意:如果客户要求的行数比信件体中的行数大,服务器会发送整个信件。</FONT></P></TD>
          <TD vAlign=top width=73><FONT face=宋体 size=3>+OK:其后有信件头;
            <P>-ERR:其后无类似消息。</FONT></P></TD>
          <TD vAlign=top width=337><FONT face=宋体 size=3>C: TOP 1 10
            <P>S: +OK</P>
            <P>S: &lt;服务器发送消息头,一个空行和信件的头10行&gt;</P>
            <P>S: .</P>
            <P>...</P>
            <P>C: TOP 100 3</P>
            <P>S: -ERR no such message</FONT></P></TD></TR>
        <TR>
          <TD vAlign=top width=48><FONT face=宋体 size=3>UIDL [msg]</FONT></TD>
          <TD vAlign=top width=62><FONT face=宋体 
            size=3>信件数(可选)。如果给出信件数,不包括被标记为删除的信件。</FONT></TD>
          <TD vAlign=top width=49><FONT face=宋体 size=3>仅在“操作”状态下使用。</FONT></TD>
          <TD vAlign=top width=251><FONT face=宋体 
            size=3>如果给出了参数,且POP3服务器返回包括上述信息的“确认”,此行称为信息的“独立-ID表”。 
            <P>如果没有参数,服务器返回“确认”响应,此响应便以多行给出。在初的+OK后,对于每个信件,服务器均给出相应的响应。此行叫做信件的“独立-ID表”。</P>
            <P>为简化语法分析,所有服务器要求使用独立-ID表的特定格式。它包括空格和信件的独立-ID。</P>
            <P>信件的独立-ID由0x21到0x7E字符组成,这个符号在给定的存储邮件中不会重复。</P>
            <P>注意:信件不包括被标记为删除的信件。</FONT></P></TD>
          <TD vAlign=top width=73><FONT face=宋体 size=3>+OK:其后是独立-ID表;
            <P>-ERR:其后无类似信件。</FONT></P></TD>
          <TD vAlign=top width=337><FONT face=宋体 size=3>C: UIDL
            <P>S: +OK</P>
            <P>S: 1 whqtswO00WBw418f9t5JxYwZ</P>
            <P>S: 2 QhdPYR:00WBw1Ph7x7</P>
            <P>S: .</P>
            <P>...</P>
            <P>C: UIDL 2</P>
            <P>S: +OK 2 QhdPYR:00WBw1Ph7x7</P>
            <P>...</P>
            <P>C: UIDL 3</P>
            <P>S: -ERR no such message, only 2 messages in 
        maildrop</FONT></P></TD></TR>
        <TR>
          <TD vAlign=top width=48><FONT face=宋体 size=3>APOP name 
          digest</FONT></TD>
          <TD vAlign=top width=62><FONT face=宋体 
          size=3>指定邮箱的字串和MD5摘要串。</FONT></TD>
          <TD vAlign=top width=49><FONT face=宋体 
            size=3>仅在POP3确认后的“确认”状态中使用。</FONT></TD>
          <TD vAlign=top width=251><FONT face=宋体 
            size=3>通常,每个POP3会话均以USER/PASS互换开始。这导致了用户名和口令在网络上的显式传送,这不会造成什么危险。但是,许多客户经常连接到服务检查信件。通常间隔时间比较短,这就加大了泄密的可能性。
            <P>另一种提供“确认”过程的方法是使用APOP命令。</P>
            <P>实现APOP命令的服务器包括一个标记确认的时间戳。例如:在UNIX上使用APOP命令的语法为:<A 
            href="mailto:process-ID.clock@hostname">process-ID.clock@hostname</A>,其中进程-ID是进程的十进制的数,时钟是系统时钟的十进制表示,主机名与POP3服务器名一致。</P>
            <P>客户记录下此时间戳,然后以送APOP命令。name语法和USER命令一致。Digest是采用MD5算法产生的包括时间戳和共享密钥的字串。此密钥是客户和服务器共知的,应该注意保护此密钥,如果泄密,任何人都能够以用户身份进入服务器。</P>
            <P>如果服务器接到APOP命令,它验证digest,如果正确,服务器返回“确认”,进入“操作”状态;否则,给出“失败”并停留在“确认”状态。</P>
            <P>注意:共享密钥的长度增加,解读它的难度也相应增加,这个密钥应该是长字符串。</FONT></P></TD>
          <TD vAlign=top width=73><FONT face=宋体 size=3>+OK:邮件锁住并准备好;
            <P>-ERR:拒绝请求。</FONT></P></TD>
          <TD vAlign=top width=337><FONT face=宋体 size=3>S: +OK POP3 server 
            ready &lt;1896.697170952@dbc.mtview.ca.us&gt;
            <P>C: APOP mrose c4c9334bac560ecc979e58001b3e22fb</P>
            <P>S: +OK maildrop has 1 message (369 octets)</P>
            <P>在此例子中,共享密钥 
            &lt;1896.697170952@dbc.mtview.ca.us&gt;tanstaaf由MD5算法生成,它产生了digest值, 
            c4c9334bac560ecc979e58001b3e22fb</FONT></P></TD></TR></TBODY></TABLE>
      <P><FONT face=宋体 size=3> </P>
      <P> </P>
      <P>8. POP3命令总结</P>
      <P> </P>
      <P>基础的POP3命令:</P>
      <P> </P>
      <P>USER name 在“确认”状态有效</P>
      <P>PASS string</P>
      <P>QUIT</P>
      <P> </P>
      <P>STAT 在“操作”状态有效</P>
      <P>LIST [msg]</P>
      <P>RETR msg</P>
      <P>DELE msg</P>
      <P>NOOP</P>
      <P>RSET</P>
      <P> </P>
      <P>QUIT 在“更新”状态有效</P>
      <P> </P>
      <P>可选的POP3命令:</P>
      <P> </P>
      <P>APOP name digest 在“确认”状态有效</P>
      <P> </P>
      <P>TOP msg n 在“操作”状态有效</P>
      <P>UIDL [msg]</P>
      <P> </P>
      <P>POP3 响应:</P>
      <P> </P>
      <P>+OK</P>
      <P>-ERR</P>
      <P> </P>
      <P>注意:除了STAT,LIST和UIDL的响应外,其它命令的响应均为"+OK"和 "-ERR"。响应后的所有文本将被客户略去。</P>
      <P> </P>
      <P>9. POP3会话实例</P>
      <P>S: &lt;等待连接到TCP端口110&gt;</P>
      <P>C: &lt;打开连接&gt;</P>
      <P>S: +OK POP3 server ready &lt;1896.697170952@dbc.mtview.ca.us&gt;</P>
      <P>C: APOP mrose c4c9334bac560ecc979e58001b3e22fb</P>
      <P>S: +OK mrose's maildrop has 2 messages (320 octets)</P>
      <P>C: STAT</P>
      <P>S: +OK 2 320</P>
      <P>C: LIST</P>
      <P>S: +OK 2 messages (320 octets)</P>
      <P>S: 1 120</P>
      <P>S: 2 200</P>
      <P>S: .</P>
      <P>C: RETR 1</P>
      <P>S: +OK 120 octets</P>
      <P>S: &lt;服务器发送信件1&gt;</P>
      <P>S: .</P>
      <P>C: DELE 1</P>
      <P>S: +OK message 1 deleted</P>
      <P>C: RETR 2</P>
      <P>S: +OK 200 octets</P>
      <P>S: &lt;服务器发送信件2&gt;</P>
      <P>S: .</P>
      <P>C: DELE 2</P>
      <P>S: +OK message 2 deleted</P>
      <P>C: QUIT</P>
      <P>S: +OK dewey POP3 server signing off (maildrop empty)</P>
      <P>C: &lt;关闭连接&gt;</P>
      <P>S: &lt;等待下一次连接&gt;</P>
      <P> </P>
      <P>10. 消息格式</P>
      <P> </P>
      <P>在会话过程中的消息格式都假定与Internet文本消息格式标准一致。应该注意的是,由于各个服务器对于换行符的处理不同,因此计数不一定相同。通常,在“确认”状态中,服务器能够以八进制计算信件的大小。例如,如果在打开储存邮件时服务器内部认定换行符代表一个字符,一般服务器在计算它时作为两个字符计。注意,以终止符开始的消息行不被计数两次,因为客户将在接收到多行响应后删除所有字节填充。</P>
      <P> </P>
      <P>11. 安全性考虑</P>
      <P>可以推测,使用APOP命令可以提供会话期间的保护。相应的,同时实现PASS和APOP命令的服务器只允许用户以一种方式访问;也就是说要么使用USER/PASS组合,要么使用APOP命令,不能同时使用两个。</P>
      <P>而且,注意随着共享密钥长度的增加,解读的难度也就上升了。服务器要提供用户名时不给出任何响应,不给出任何暗示此用户名是否正确。而口令却在网络上显式传送;使用RETR和TOP命令在网络上显式传送信件。</FONT></P></TD></TR></TBODY></TABLE></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -