Obsah
Časová náročnost kapitoly: 15 minut
Nyní následují příkazy protokolu POP3, jejichž implementace není povinná. Všechny povinné příkazy již byly popsány při popisu stavů autorizačního, transakčního a aktualizačního. Nepovinné příkazy se implementují pro zlepšení použitelnosti protokolu POP3.
Příkaz TOP se používá pro získání
části zprávy ze serveru. Je užitečný pro přečtení části zprávy.
Zvláště na komutovaných linkách je možnost načíst několik řádků z
velké zprávy neocenitelná. Pro jeho užitečnost je často
implementován. Příkaz vrací zadaný počet řádků ze zprávy.
Parametry:
zpráva - unikátní identifikátor
zprávy, která nesmí být označena jako smazaná
počet
- nezáporný počet řádků zprávy, které má server poslat
Možné
odpovědi:
+OK zbytek zpravy nasleduje
-ERR zadna takova zprava
Příklad:
Klient: TOP 1 10
Server: +OK
Server:
nyní se posílá prvních 10 řádků zprávy číslo 1
Server:
.
...
Klient:
TOP 20 10
Server: -ERR neplatne cislo
zpravy
Pro získání unikátních identifikátorů
zprávy ze serveru (pokud není zadán parametr vrací identifikátory
všech zpráv) použijeme příkaz UIDL. Odpověď je ve formátu ID zprávy,
následováno identifikátorem generovaným POP3 serverem na základě
hašovací funkce aplikované na tělo zprávy. Na rozdíl od dočasného ID,
které je generováno jako pořadí zprávy na POP3 serveru, je
identifikátor vrácený příkazem UIDL unikátní v rámci celého POP3
serveru. Server nesmí přidělit stejné ID, dokud zpráva není
odstraněna. Unikátnost je nezbytná při ukončení bez vstupu do
aktualizačního stavu, například při přerušení spojení. Dalším
využitím je ponechávání kopie zprávy na serveru a podle unikátního ID
nahrávání jen nových zpráv bez nutnosti nahrávání celého obsahu
schránky.
Parametry:
zpráva -
nepovinný parametr, unikátní identifikátor zprávy, která nesmí být
označena jako smazaná
Možné odpovědi:
+OK
nasleduje unikatni identifikator
-ERR
zadna takova zprava
Příklad:
Klient: UIDL
Server:
+OK
Server: 1 whqtswO00WBw418f9t5JxYwZ
Server: 2 QhdPYR:00WBw1Ph7x7
Server:
.
...
Klient:
UIDL 2
Server: +OK 2 QhdPYR:00WBw1Ph7x7
...
Klient:
UIDL 3
Server: -ERR zadna takova zprava
Pro zabezpečené přihlášení k poštovní
schránce využívá kódování hesla pomoci algoritmu MD5, algoritmus
šifrování popsán v RFC 1321 [3]. POP3 server, který podporuje
autorizaci příkazem APOP, připojí ke svému uvítacímu pozdravu časovou
známku. Struktura časové známky odpovídá msg-id popsanému v dokumentu
RFC 822 [4], musí být pokaždé při spojení klienta a serveru
jedinečná. Otisk hesla vypočítá klient použitím MD5 algoritmu na
řetězec složený z časové známky a řetězce sdíleného hesla. Tento
řetězec sdíleného hesla je znám pouze klientu a serveru.
Parametry:
jméno - povinný parametr, řetězec
identifikující uživatele
otisk - povinný
parametr, řetězec generovaný pomocí algoritmu MD5
Možné
odpovědi:
+OK uzivatel prihlasen,
schranka uzamcena
-ERR pristup nepovolen
Příklad:
Server: +OK POP3 server
pripraven 1896.697170952@dbc.mtview.ca.us
Klient:
APOP karel c4c9334bac560ecc979e58001b3e22fb
Server:
+OK uzivatel prihlasen
Popište
zásadní rozdíl mezi přihlášením do schránky pomocí příkazů USER a
PASS a přihlášením pomocí příkazu APOP.
Pokuste
se programem ethereal zachytit a vyhodnotit průběh komunikace mezi
klientem a serverem.