Passa al contenuto principale

3. Basic Operation (Operazione di base)

Inizialmente, l'host server avvia il servizio POP3 ascoltando sulla porta TCP 110. Quando un host client desidera utilizzare il servizio, stabilisce una connessione TCP con l'host server. Quando la connessione è stabilita, il server POP3 invia un messaggio di saluto. Il client e il server POP3 quindi scambiano comandi e risposte (rispettivamente) fino a quando la connessione è chiusa o interrotta.

I comandi in POP3 consistono in una parola chiave insensibile alle maiuscole, possibilmente seguita da uno o più argomenti. Tutti i comandi sono terminati da una coppia CRLF. Le parole chiave e gli argomenti consistono in caratteri ASCII stampabili. Le parole chiave e gli argomenti sono ciascuno separati da un singolo carattere di spazio. Le parole chiave sono lunghe tre o quattro caratteri. Ogni argomento può essere lungo fino a 40 caratteri.

Le risposte in POP3 consistono in un indicatore di stato e una parola chiave possibilmente seguiti da informazioni aggiuntive. Tutte le risposte sono terminate da una coppia CRLF. Le risposte possono essere lunghe fino a 512 caratteri, incluso il CRLF di terminazione. Ci sono attualmente due indicatori di stato: positivo ("+OK") e negativo ("-ERR"). I server devono (MUST) inviare "+OK" e "-ERR" in maiuscolo.

Le risposte a determinati comandi sono multi-linea. In questi casi (notati esplicitamente di seguito), dopo aver inviato la prima riga della risposta e un CRLF, vengono inviate tutte le righe aggiuntive, ciascuna terminata da una coppia CRLF. Quando tutte le righe della risposta sono state inviate, viene inviata una riga finale, consistente in un ottetto di terminazione (codice decimale 046, ".") e una coppia CRLF.

Una sessione POP3 progredisce attraverso diversi stati durante la sua vita. Una volta che la connessione TCP è stata aperta e il server POP3 ha inviato il saluto, la sessione entra nello stato AUTHORIZATION. In questo stato, il client deve (MUST) identificarsi al server POP3. Una volta che il client l'ha fatto con successo, il server acquisisce le risorse associate al maildrop del client, e la sessione entra nello stato TRANSACTION. In questo stato, il client richiede azioni da parte del server POP3. Quando il client ha emesso il comando QUIT, la sessione entra nello stato UPDATE. In questo stato, il server POP3 rilascia tutte le risorse acquisite durante lo stato TRANSACTION e dice addio. La connessione TCP viene quindi chiusa.

Un server deve (MUST) rispondere a un comando non riconosciuto, non implementato o sintatticamente non valido rispondendo con un indicatore di stato negativo. Un server deve (MUST) rispondere a un comando emesso quando la sessione si trova in uno stato errato rispondendo con un indicatore di stato negativo.

Un server POP3 può (MAY) avere un timer di autologout per inattività. Tale timer deve (MUST) avere una durata di almeno 10 minuti. La ricezione di qualsiasi comando dal client durante quell'intervallo dovrebbe essere sufficiente per reimpostare il timer di autologout. Quando il timer scade, la sessione non (does NOT) entra nello stato UPDATE -- il server dovrebbe chiudere la connessione TCP senza rimuovere messaggi o inviare alcuna risposta al client.


Glossario:

  • CRLF: Ritorno a capo + avanzamento riga
  • stato AUTHORIZATION: Stato di autorizzazione
  • stato TRANSACTION: Stato di transazione
  • stato UPDATE: Stato di aggiornamento
  • byte-stuffed: Byte-stuffing
  • indicatore di stato: Indicatore di stato

Parole chiave RFC 2119:

  • MUST (deve): Requisito assoluto
  • MAY (può): Opzionale