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
poalje pozdrav, tada se ulazi u stanje autorizacije
(authorization state). U toj fazi klijent se mora identificirati
POP3 serveru. Nakon to je klijent uspijeno
proao 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 izvravati
na samom POP3 serveru. Kada klijent izda QUIT komandu,
ulazi se u stanje obnove (update state). U toj fazi
POP3 server rijeava se svih podataka koji su bili
potrebni tokom prijenosa i zavrava komunikaciju.
Nakon toga prekida se i TCP veza.
U
sluèaju neaktivnost POP3 moe 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 moe biti bilo koji niz znakova koji zavrava
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 moe 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 moe
tada odaslati novu autorizacijsku komandu ili zavriti
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 uspjenu fazu autorizacije
server uvjerio da treba omoguèiti pristup sadraju
odreðenog maildropa, server tada stijeèe
kontrolu i nadzire zaporku kojom je zakljuèan
maildrop i na taj naèin osigurava da se sadraj
maildropa ne mijenja sve dok se ne uðe u fazu UPDATE.
Ako je stjecanje kontrole nad zaporkom maildropa prola
uspjeno, 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 moe biti otvoren
iz nekog razloga, tada se server odgovara sa negativnim
status indikatorom. Nakon negativnog indikatora statusa
server moe zatvoriti vezu, ili klijent moe
zatraiti novu autorizacijiu ili moe odaslati
QUIT komadu i zavriti komunikaciju.
Nakon
to POP3 server otvori maildrop, server dodjeljuje
redni broj svakoj poruci poèevi 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 saeti osnovne tri naredbe POP3
protokola koje smo do sada upoznali:
USER
ime
Argumenti:
String identificira mailbox, koji je vaan jedino
za server
Ogranièenja:
Moe jedino biti dato u fazi autorizacije, nakon
to server poalje 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 uspjene
USER komande.
Objanjenje:
Buduæi PASS komanda ima samo jedan argument, POP3
server razmak (space) moe tretirati kao dio zaporke,
a ne kao separator.
Moguèi odgovori:
+OK maildrop zakljuèan i spreman
-ERR kriva zaporka
-ERR maildrop se ne moe 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 uspijeno predstavio POP3
serveru, i kada je POP3 server zakljuèao i otvorio
odgovarajuèi maildrop, POP3 sada prelazi u fazu
transakcije. Klijent sada moe ponavljati bilo
koju od POP3 naredbi. Nakon svake komande POP3 server
odailje odgovor. Eventualno, klijent odailje
QUIT komandu i POP3 ulazi u UPDATE fazu.
Neke
POP3 komande za vrijeme transakcije:
STAT
Argumenti:
nema
Ogranièenja:
Moe jedino biti dana u fazi transakcije
Diskusija:
POP3 odailje pozitivan odgovor sa komandnom linijom
koja u sebi
sadri 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:
Moe biti dana jedino u fazi transakcije.
Diskusija:
POP3 server oznaèava poruke kao proèitane.
Svako pokuaj oznaèavanja poruke nakon to
je ona oznaèena kao pobrisama uzrokovati æe
pogreku. POP3 server "fizièki"
ne pobrie 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)
...
|