?? rfc2449.txt
字號:
組織:中國互動出版網(http://www.china-pub.com/)
RFC文檔中文翻譯計劃(http://www.china-pub.com/compters/emook/aboutemook.htm)
E-mail:mailto:ouyang@china-pub.com
譯者:()
譯文發布時間:2001-11-4
版權:本中文翻譯文檔版權歸中國互動出版網所有。可以用于非商業用途自由轉載,但必須
保留本文檔的翻譯及版權信息。
Network Working Group R. Gellens
Request for Comments: 2449 Qualcomm
Updates: 1939 C. Newman
Category: Standards Track Innosoft
L. Lundblade
Qualcomm
November 1998
POP3擴展機制
(RFC2449——POP3 Extension Mechanism)
本備忘錄的狀態
本文檔講述了一種Internet社區的Internet標準跟蹤協議,它需要進一步進行討論和建
議以得到改進。請參考最新版的“Internet正式協議標準” (STD1)來獲得本協議的標準化
程度和狀態。本備忘錄的發布不受任何限制。
版權聲明
Copyright (C) The Internet Society (2001).
IESG聲明
此POP3協議的擴展是供服務器使用,來描述服務器管理員采取的對策的。它不是POP3
進一步擴展之實現的保證。普通的觀點是,出于單純的從一個郵件服務器下載郵件的目的,
POP3協議應該保持簡單。如果需要更復雜的操作,應該使用IMAP協議。第7節的第一段
應該仔細閱讀。
目錄
1.介紹 2
2.這篇文檔使用的約定。 2
3.一般命令和響應語法 3
4.參數和響應長度 3
5.CAPA命令 4
6.功能的初始集合 4
6.1 TOP功能 5
6.2. USER 功能 5
6.3. SASL capability 5
6.4. RESP-CODES功能 5
6.5. LOGIN-DELAY 功能 6
6.6 PIPELINING功能 6
6.7 EXPIRE功能 7
6.8 UIDL功能 8
6.9 IMPLEMENTATION功能 8
7.POP3的未來擴展 9
8.擴展POP3響應碼 9
8.1初始化POP3響應碼 9
9.IANA考慮 10
10.安全考慮 10
11.致謝 11
12.參考文獻 11
13.作者地址 11
14.完整版權說明 12
1.介紹
郵局協議第3版[POP3]使用廣泛。但是,當它包含某些可選的命令時(以及某些已經發
布的協議擴展),它缺乏一種機制,來對這些擴展或動作變化提供公開的支持。
目前這些可選特征和擴展只能通過探測的方式檢測到,如果可行的話。這種方式至少是
缺乏效率的,甚至可能更壞。因此,某些客戶端有用于人工配置POP3功能的選項。
因為POP3的一個最重要的特征是它的簡單,所以擴展的數目最好比較少。但是,某些
擴展是必需的(比如提供改善的安全性的擴展[POP-AUTH]),而其它的只在特定情況下是值
得要的。另外,需要一種發現服務器的方法。
此備忘錄對RFC1939[POP3]進行改進,以提供一種機制用來聲明對可選命令,擴展,和
無條件服務器行為的支持。它包含了已經配置的功能的初始配置,這些配置因服務器而異,
以及許多新功能(SASL, RESP-CODES, LOGIN-DELAY, PIPELINING, EXPIRE和
IMPLEMENTATION)。這篇文檔也對POP3的錯誤信息進行了擴展,這樣機器的可解析代碼就能
夠提供給客戶端。還包含響應碼的初始設置。另外,還定義了一個POP3命令和響應的[ABNF]
規格說明。
公開的評論應該發送到IETF POP3擴展郵件列表<ietf-pop3ext@imc.org>。想訂閱的
話,可以向<ietf-pop3ext-request@imc.org>發送一條包含SUBSCRIBE的消息。
2.這篇文檔使用的約定。
這篇文檔里的"REQUIRED", "MUST", "MUST NOT", "SHOULD", "SHOULD NOT",
和“MAY”的解釋和“Keywords for use in RFCs to Indicate Requirement Levels”[KEYWORDS]
里描述的一樣。
在例子中,“C:”和“S:”表是客戶端和服務器端分別發送的信息。
3.一般命令和響應語法
POP3命令和響應的一般形式使用[ABNF]進行描述:
POP3命令:
command = keyword *(SP param) CRLF ;最大255八位組
keyword = 3*4VCHAR
param = 1*VCHAR
POP3響應
response = greeting / single-line / capa-resp / multi-line
capa-resp = single-line *capability "." CRLF
capa-tag = 1*cchar
capability = capa-tag *(SP param) CRLF ;最大512八位組
cchar = %x21-2D / %x2F-7F
;可打印ASCII碼, “.”除外
dot-stuffed = *CHAR CRLF ;必須以圓點填充
gchar = %x21-3B / %x3D-7F
;可打印的ASCII碼,“<"除外
greeting = "+OK" [resp-code] *gchar [timestamp] *gchar CRLF
;最大512八位組
multi-line = single-line *dot-stuffed "." CRLF
rchar = %x21-2E / %x30-5C / %x5E-7F
; 可打印的ASCII碼,“/”和“]”除外
resp-code = "[" resp-level *("/" resp-level) "]"
resp-level = 1*rchar
schar = %x21-5A / %x5C-7F
; 可打印的ASCII碼, “[”除外
single-line = status [SP text] CRLF ;最大512八位組
status = "+OK" / "-ERR"
text = *schar / resp-code *CHAR
timestamp = "<" *VCHAR ">"
;必須符合RFC-822的msg-id規定
4.參數和響應長度
這里的闡述增加了RFC 1939提出的命令和參數長度限制。
一個命令的最大長度從47字符(4字符的命令,單空格,40個字符變量,CRLF)增加
到255八位組,包括有限CRLF。
支持CAPA命令的服務器必須支持長達255八位組的命令。服務器也必須支持任何支持
的功能所指定的最大命令長度。
命令響應的第一行的最大長度(包括開始的問候)還是512八位組不變(包括有限CRLF)。
5.CAPA命令
POP3的CAPA命令返回POP3服務器支持的功能列表。它在AUTHORIZATION和TRANSACTION
狀態下均可使用。
一個功能描述必須記錄在功能通告于何種狀態下,以及在哪種狀態下命令有效。
在AUTHORIZATION狀態下可用的功能必須在兩種狀態下都予以通告。
如果某個功能在兩種狀態下都被通告了,但是在身份驗證之后參數可能不同。這種可能
性必須在功能描述中說明。
(這些要求允許一個客戶端在不使用任何TRANSACTION-only功能,以及任何在身份驗證之
后參數值可能不同的功能時,只發送一個CAPA命令。)
如果身份驗證這步商定了一個完整性保護層,客戶端應該在驗證重新發送CAPA命令,
以阻止活動的down-negotiation攻擊。
每個功能都可能激活額外的協議命令,額外的參數和已存在命令的響應,或者描述服務
器行為的一個方面。這些細節在相應的功能描述中闡述。
第3節描述了使用[ABNF]的CAPA響應。當一個功能響應描述了一個可選命令時,
<capa-tag>應該和命令關鍵詞一樣。CAPA響應標記對大小寫敏感。
CAPA
參數:無
限制:無
討論:-ERR響應表明功能命令沒有實現,客戶端必須像以前一樣對功能進行探測。
-OK響應后面緊跟著的就是一個功能列表,一行一個功能。每個功能名后面可能都有一
個空格和由空格分隔的一個參數列表。每個功能行被限制在512八位組以內(包括CRLF在
內)。功能列表碰到包含一個終止八位組(“.”)和一個CRLF對時結束。
可能的響應:+OK –ERR
例子:
C: CAPA
S: +OK Capability list follows
S: TOP
S: USER
S: SASL CRAM-MD5 KERBEROS_V4
S: RESP-CODES
S: LOGIN-DELAY 900
S: PIPELINING
S: EXPIRE 60
S: UIDL
S: IMPLEMENTATION Shlemazle-Plotz-v302
S: .
6.功能的初始集合
這節定義了POP3功能的一個初始集合。這些包括可選POP3命令,已經發布的POP3擴
展,以及POP3服務器之間的行為差異,這種差異能夠影響到客戶端。
注意到沒有APOP功能,盡管APOP在[POP3]中是可選命令。客戶端通過包含在一個尖括
號(“<>”)里的初始驗證的問候語的存在與否來發現服務器對APOP的支持。因此,APOP功
能為服務器聲明同樣的事情引進了兩種方法。
6.1 TOP功能
CAPA標記:TOP
參數:無
附加命令:TOP
影響的標準命令:無
聲明的狀態/可能的不同:兩者/沒有
命令有效的狀態:TRANSACTION
規范參考:[POP3]
討論:TOP 功能表明TOP可選命令可用。
6.2. USER 功能
CAPA tag:USER
參數:無
附加命令:USER PASS
受影響的標準命令:無
聲明的狀態/可能的不同:兩者/沒有
命令有效的狀態:AUTHENTICATION
規范參考:[POP3]
討論:USER功能表明支持USER和PASS命令,盡管它們可能不是對所有用戶都可用。
6.3. SASL capability
CAPA標記:SASL
參數:支持的SASL機制
附加命令:AUTH
受影響的標準命令:無
聲明的狀態/可能的不同:兩者/沒有
命令有效的狀態:AUTHENTICATION
規范參考:[POP-AUTH, SASL]
討論:POP3AUTH命令[POP-AUTH]允許使用帶POP3的[SASL]的認證機制. SASL功能表明
AUTH命令可用,并且支持base64編碼的另一參數,此參數可選,是為初始的客戶端響應而
設的,如SASL里所述。SASL功能的參數是受支持的SASL機制列表,列表由空格分隔。
6.4. RESP-CODES功能
CAPA標記: RESP-CODES
參數:無
附加命令:無
受影響的標準命令:無
聲明的狀態/可能的不同: 兩者/沒有
命令有效的狀態:n/a
規范參考:此文檔
討論: RESP-CODES性能表明任何由此服務器發送的響應文本,只要是由一個左方括號
(“[”])開始的,它就是擴展響應編碼(參見第8節)。
6.5. LOGIN-DELAY 功能
CAPA標記:LOGIN-DELAY
參數:多個登陸間的最小間隔秒數; AUTHENTICATION狀態下可以跟上USER。
附加命令:無
受影響的標準命令:USER PASS APOP AUTH
聲明的狀態/可能的不同:兩者/有
命令有效的狀態:n/a
規范參考:此文檔
討論:POP3客戶經常登陸來檢查是否有新郵件。不幸的是,創建一個連接,驗證用戶,
以及打開用戶的郵箱非常消耗服務器的資源。許多POP3服務器試圖通過要求登陸之間有一
個延遲的方式來降低服務器負載。LOGIN-DELAY功能包括一個整型參數,它表示在一個對
PASS, APOP, 或 AUTH命令的“+OK”響應之后,接受另一個驗證之前,延遲的秒數。允許
用戶配置郵件檢查間隔的客戶端應該使用這個功能來確定允許的最小間隔。發布LOGIN-
DELAY的服務器應該強制此實現。
如果最小登陸延遲可以因用戶而異(就是說,LOGIN-DELAY參數在驗證之后可以改變),
服務器必須在AUTHENTICATION時設置用戶能夠配置的最大值。這可能是當前所有用戶使用
中的最大值(這樣的話每個服務器就只有一個值),或者是服務器允許為任意用戶設置的最
大值。服務器應該在AUTHENTICATION狀態下給LOGIN-DELAY參數附加“USER”標記,以通
知客戶端在驗證之后可以獲取一個更加精確的值。服務器應該在TRANSACTION下宣布那個更
加精確的值。(“USER”標記允許客戶端決定是否需要另一個CAPA命令。)
服務器通過帶或不帶LOGIN-DELAY的出錯響應來拒絕驗證,這樣強制LOGIN-DELAY。參
見第8.1.1節獲取更多信息。
6.6 PIPELINING功能
CAPA標記:PIPELINING
參數:無
附加命令:無
受影響的標準命令:全部
聲明的狀態/可能的不同: 兩者/沒有
命令有效的狀態:n/a
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -