3. Basic Operation (Fonctionnement de base)
Initialement, l'hôte serveur démarre le service POP3 en écoutant sur le port TCP 110. Lorsqu'un hôte client souhaite utiliser le service, il établit une connexion TCP avec l'hôte serveur. Lorsque la connexion est établie, le serveur POP3 envoie un message de salutation. Le client et le serveur POP3 échangent ensuite des commandes et des réponses (respectivement) jusqu'à ce que la connexion soit fermée ou interrompue.
Les commandes dans POP3 consistent en un mot-clé insensible à la casse, éventuellement suivi d'un ou plusieurs arguments. Toutes les commandes sont terminées par une paire CRLF. Les mots-clés et les arguments consistent en caractères ASCII imprimables. Les mots-clés et les arguments sont chacun séparés par un seul caractère d'espace. Les mots-clés ont trois ou quatre caractères. Chaque argument peut avoir jusqu'à 40 caractères.
Les réponses dans POP3 consistent en un indicateur de statut et un mot-clé éventuellement suivi d'informations supplémentaires. Toutes les réponses sont terminées par une paire CRLF. Les réponses peuvent avoir jusqu'à 512 caractères, y compris le CRLF de terminaison. Il existe actuellement deux indicateurs de statut : positif ("+OK") et négatif ("-ERR"). Les serveurs doivent (MUST) envoyer "+OK" et "-ERR" en majuscules.
Les réponses à certaines commandes sont multi-lignes. Dans ces cas (notés explicitement ci-dessous), après l'envoi de la première ligne de la réponse et d'un CRLF, toutes les lignes supplémentaires sont envoyées, chacune terminée par une paire CRLF. Lorsque toutes les lignes de la réponse ont été envoyées, une ligne finale est envoyée, consistant en un octet de terminaison (code décimal 046, ".") et une paire CRLF. Si une ligne de la réponse multi-ligne commence par l'octet de terminaison, la ligne est "byte-stuffed" en préfixant l'octet de terminaison à cette ligne de la réponse. Par conséquent, une réponse multi-ligne est terminée par les cinq octets "CRLF.CRLF".
Une session POP3 progresse à travers plusieurs états pendant sa durée de vie. Une fois que la connexion TCP a été ouverte et que le serveur POP3 a envoyé le message de salutation, la session entre dans l'état AUTHORIZATION. Dans cet état, le client doit (MUST) s'identifier au serveur POP3. Une fois que le client a réussi à le faire, le serveur acquiert les ressources associées au maildrop du client, et la session entre dans l'état TRANSACTION. Dans cet état, le client demande des actions de la part du serveur POP3. Lorsque le client a émis la commande QUIT, la session entre dans l'état UPDATE. Dans cet état, le serveur POP3 libère toutes les ressources acquises pendant l'état TRANSACTION et dit au revoir. La connexion TCP est alors fermée.
Un serveur doit (MUST) répondre à une commande non reconnue, non implémentée ou syntaxiquement invalide en répondant avec un indicateur de statut négatif. Un serveur doit (MUST) répondre à une commande émise lorsque la session est dans un état incorrect en répondant avec un indicateur de statut négatif.
Un serveur POP3 peut (MAY) avoir un minuteur d'autologout d'inactivité. Un tel minuteur doit (MUST) avoir une durée d'au moins 10 minutes. La réception de toute commande du client pendant cet intervalle devrait suffire à réinitialiser le minuteur d'autologout. Lorsque le minuteur expire, la session n'entre pas (does NOT) dans l'état UPDATE -- le serveur devrait fermer la connexion TCP sans supprimer de messages ni envoyer de réponse au client.
Glossaire:
- CRLF: Retour chariot + saut de ligne
- état AUTHORIZATION: État d'autorisation
- état TRANSACTION: État de transaction
- état UPDATE: État de mise à jour
- byte-stuffed: Échappement d'octets
- indicateur de statut: Indicateur de statut
Mots-clés RFC 2119:
- MUST (doit): Exigence absolue
- MAY (peut): Optionnel