Post Office Protocol - Verzija 3

1. Uvod

Neki odredeni manji tipovi nodova su neprakticni ili ne podrzavaju message transport system (MTS). Na primjer, u situacijama kada radna stanica nema dovoljno resursa (prostora na disku) da omoguci SMTP serveru i popratnom lokalnom sistemu za isporuku da budu stalno i kontinuirano aktivni. Isto tako, bilo bi poprilicno skupo (a i nemoguce) da osobna racunala budu cijelo vrijeme spojena na mrezu koja se temelji na IP nacinu rada.
Ali i unatocnavedenim oèitim problemima, bilo bi korisno moci rukovati mailom na nekim manjim nodovima, i stoga oni cesto podrzavaju user agent (UA) kao pomocpri rukovanju i izvrsavanju odredenih radnji nad mailom. Namjera samog POP3 protokola je da omoguci radnoj stanici da dinamicki pristupa maildrop-u na host serveru na sto korisniji i prakticniji nacin. Obicno, to znaci da se POP3 koristi da bi dozvolio radnoj stanici da preuzme mail koji server drzi za njega.
Samo kao napomenu, na ovome mejstu cemo navesti da ce se pojam "client host" ce ukazivati na host koji ce koristiti pop3 usluge, dok ce se pojam "server host" ukazivati na server koji omogucava pop3 usluge.

2. Osnovne operacije

Server host inicijalno zapoèinje pop3 uslugu na nacin da osluskuje TCP port 110. Kada client host zeli zeli koristiti servis, on jednostavno uspostavlja TCP vezu sa server hostom. Kada je veza uspostavljena, pop3 server salje pozdrav. Tada server i client izmejenjuju komande i povratne odgovore sve dok je veza uspostavljena.

Komande se u POP3 sastoje od kljucnih rijeci iza kojih moze uslijediti dodatna informacija. Sve komande odredene su CRLF parom. Kljudne rijedi i argumenti sastavljeni su od ASCII znakova. Kljudne rijedi i argumenti odvojeni su iskljudivo samo jednim razmakom (to je ASCII znak). Kljudne rijedi se sastoje od tri ili detiri znaka, dok se argumenti mogu sastojati i od detrdesetak znakova.

Povratni odgovor u POP3 sastoji se od indikatora statusa i kljudne rijedi iza koja moze slijediti dodatna informacija. Svi povratni odgovori su odredeni CRLF parom. Trenutno POP3 ima dva indikatora statusa:: pozitivni ("+OK") i negativni ("-ERR").

Povratni odgovor na odredenu komandu moze se sastojati od vise linija. U tom slucaju svaka linija se salje na nacin da se posalje u svakoj linijji odgovarajuci povratni odgovor i CRLF par. Kada se posalje i zadnja linija povratnog odgovora, za njom ce uslijediti terminacijski oktet (decimalni kod 046, ".") i CRLF par.

Za vrijeme svoga životnog vijeka POP3 prolazi kro razne faze. Jednom kada se uspostavi TCP veza i server pošalje pozdrav, tada se ulazi u stanje autorizacije (authorization state). U toj fazi klijent se mora identificirati POP3 serveru. Nakon što je klijent uspiješno prošao tu fazu, server prihvaèa i obraðuje sve potrebne podatke za daljnje rukovanje klijentovim maildrop-om, i tada se ulazi u stanje tranzasakcije ili prijenosa (transaction state). U tom stanju klijent zahtijeva odreðenje radnje koje æe izvršavati na samom POP3 serveru. Kada klijent izda QUIT komandu, ulazi se u stanje obnove (update state). U toj fazi POP3 server riješava se svih podataka koji su bili potrebni tokom prijenosa i završava komunikaciju. Nakon toga prekida se i TCP veza.

U sluèaju neaktivnost POP3 može imati i timer (inactivity autologout timer), a takav timer mora se aktivirati tek nakon najmanje 10 minuta. Primitak ili prijenost bilo kakvih podataka uzrokuje resetiranje timer-a. U sluèaju kada timer ne bude resetiran, tj. kada istekne vrijeme radi neaktivnosti, zatvara se TCP veza ali u tom sluèaju ne ulazi u stanje obnove, tj. zatvara se veza bez slanja poruke i komande servera o zatvaranje POP3 protokola.


3. Stanje autorizacije (the authorization state)

Jednom kada se otvori TCP veza od strane klijenta, POP3 server šalje pozdrav koji se sastoji od jedne linije kod, a to može biti bilo koji niz znakova koji završava sa CRLF parom.. Na primjer moguè je ovakav pozdrav:

Server: +OK POP3 server ready

Treba uoèiti da je pozdrav POP3 odgovor (replay). POP3 server bi trebao uvijek dati pozitivan odgovor kao odgovor.
POP3 sada ulazi u fazu autorizacije (authorization state), te se u toj fazi klijent mora identificirati i autorizirati POP3 severu. Za to su moguæa dva naèina koje æemo i opisati u daljnjem tekstu, koristeæi kombinaciju USER i PASS komandi ili APOP komandu. Da bi se klijent autorizirao serveru koristeæi USER i PASS komande, klijent prvo mora odaslati USER komandu. Ako sever odgovori sa pozitivnim statusnim indikatorom ("+OK"), tada klijent može proslijediti još jednu PASS komandu da kompletira fazu autorizacije, ili odaslati QUIT komandu da orekine POP3 komunikaciju. Ako sever odgovori sa negativnim statusnim indikatorom ("-ERR") na USER komandu, klijent može tada odaslati novu autorizacijsku komandu ili završiti POP3 komunikaciju i odaslati QUIT komandu.

Kada klijent odasla PASS komandu, POP3 server koristi par argumenata USER i PASS komandi kojima omoguèuje pristup dotiènom maildropu.
Nakon što se kroz uspješnu fazu autorizacije server uvjerio da treba omoguèiti pristup sadržaju odreðenog maildropa, server tada stijeèe kontrolu i nadzire zaporku kojom je zakljuèan maildrop i na taj naèin osigurava da se sadržaj maildropa ne mijenja sve dok se ne uðe u fazu UPDATE. Ako je stjecanje kontrole nad zaporkom maildropa prošla uspješno, server odgovara sa pozitivnim status indikatorom. POP3 sada ulazi u fazu transakcije (transaction state), sa time da niti jedna poruka nije oznaèena kao pobrisana. Ako maildrop ne može biti otvoren iz nekog razloga, tada se server odgovara sa negativnim status indikatorom. Nakon negativnog indikatora statusa server može zatvoriti vezu, ili klijent može zatražiti novu autorizacijiu ili može odaslati QUIT komadu i završiti komunikaciju.

Nakon što POP3 server otvori maildrop, server dodjeljuje redni broj svakoj poruci poèevši od broja "1" pa sve do "b" i to u dekadskom brojevnom sustavu. Paralelno svakoj poruci i pripisuje velièinu u oktetima.

Sada æemo ukratko sažeti osnovne tri naredbe POP3 protokola koje smo do sada upoznali:

USER ime

Argumenti:
String identificira mailbox, koji je važan jedino za server

Ogranièenja:
Može jedino biti dato u fazi autorizacije, nakon što server pošalje porzdrav, ili nakon neuspjele USER ili PASS komande

Moguèi odgovori:
+OK ime je valjano, postojitakav mailbox
-ERR ne postoji mailbox sa takvim imenom

Primjer:
C: USER mijo
S: +OK mijo
......................
C: USER denis
S: -ERR sorry, no mailbox for denis here

PASS string

Argumenti:
Server/mailbox password

Ogranièenja:
Moguèe jedino u fazi autorizacije nakon uspješne USER komande.

Objašnjenje:
Buduæi PASS komanda ima samo jedan argument, POP3 server razmak (space) može tretirati kao dio zaporke, a ne kao separator.

Moguèi odgovori:
+OK maildrop zakljuèan i spreman
-ERR kriva zaporka
-ERR maildrop se ne može zakluèati

Primjeri:
C: USER mrose
S: +OK mrose is a real hoopy frood
C: PASS secret
S: +OK mrose's maildrop has 2 messages (320 octets)
...
C: USER mrose
S: +OK mrose is a real hoopy frood
C: PASS secret
S: -ERR maildrop already locked

QUIT

Argumenti:
nema

Ogranièenja:
nema

Moguèi odgovor:
+OK

Primjeri:
C: QUIT
S: +OK dewey POP3 server signing off

4. Transakcija (the transaction state)


Jednom kada se klijent uspiješno predstavio POP3 serveru, i kada je POP3 server zakljuèao i otvorio odgovarajuèi maildrop, POP3 sada prelazi u fazu transakcije. Klijent sada može ponavljati bilo koju od POP3 naredbi. Nakon svake komande POP3 server odašilje odgovor. Eventualno, klijent odašilje QUIT komandu i POP3 ulazi u UPDATE fazu.

Neke POP3 komande za vrijeme transakcije:

STAT
Argumenti:
nema

Ogranièenja:
Može jedino biti dana u fazi transakcije
Diskusija:
POP3 odašilje pozitivan odgovor sa komandnom linijom koja u sebi
sadrži informaciju za maildrop. Ta linija komande se naziva "drop
listing" za taj odreðeni mildrop.

Moguci odgovor:
+OK nn mm

Primjer:
C: STAT
S: +OK 2 320

DELE msg

Argumenti:
broj poruke koji ne smije pokazivati na poruku koja je veæ oznaèena kao pobrisana.

Ogranièenja:
Može biti dana jedino u fazi transakcije.

Diskusija:
POP3 server oznaèava poruke kao proèitane. Svako pokušaj oznaèavanja poruke nakon što je ona oznaèena kao pobrisama uzrokovati æe pogrešku. POP3 server "fizièki" ne pobriše poruku sve dok POP3 ne uðe u fazu UPDATE.

Moguèi odgovor:
+OK message deleted
-ERR no such message

Primjer:
C: DELE 1
S: +OK message 1 deleted
...
C: DELE 2
S: -ERR message 2 already deleted


5. UPDATE


Jednom kada klient odasla QUIT komandu iz stanja transakcije, ulazimo u fazu UPDATE. Treba napomenuti da kada klient odasla QUIT komandu u fazi AUTORIZACIJE, tada POP3 sekcija ne ulazi u UPDATE stanje. Ako se se iz bilo kojeg razloga odasla QUIT komanda, a da nije odaslana od strane klienta, POP3 sekcja neæe uæi u UPDATE fazu I ne smije ukoniti poruke iz maildrop-a.


QUIT

Arguments : none
Restrictions: none

Diskusija: POP3 server uklanja sve poruke iz maildrop-a koje su oznaèene kao
pobrisane. Tada se oslobaða jedna od exclusive-access brava na
maildrop-u I šalje odgovor o statusu tih operacija. TCP veza se nakon
toga zatvara.

Moguèi odgovori:

+OK

Primjeri:

C: QUIT
S: +OK dewey POP3 server signing off (maildrop empty)
...
C: QUIT
S: +OK dewey POP3 server signing off (2 messages left)
...


 
Stranica je najbolje vidljiva u 1024x768 rezoluciji. Stranica je napravljena 12/09/2003. By Mijo Svircevic