Protocole sans état
# Protocole sans état

En informatique, un protocole sans état (en anglais stateless protocol) est un protocole de communication qui n'enregistre pas l'état d'une session de communication entre deux requêtes successives. La communication est formée de paires requête-réponse indépendantes et chaque paire requête-réponse est traitée comme une transaction indépendante, sans lien avec les requêtes précédentes ou suivantes. Autrement dit, un protocole sans état ne nécessite pas que le serveur conserve, au cours de la session de communication, l'état de chacun des partenaires. A contrario, un protocole qui impose la conservation des informations sur l'état interne du serveur est appelé protocole avec état (en anglais stateful protocol).

L'Internet Protocol (IP), à la base de l'internet, et l'Hypertext Transfert Protocol (HTTP), à la base du système d'échange de données du World Wide Web, sont des exemples typiques de protocoles sans état.

L'utilisation d'un protocole sans état dans un logiciel serveur permet de simplifier son design, car on se libère de toute la gestion compliquée de l'espace mémoire requis pour enregistrer l'état des échanges en cours. Si une session cliente meurt à mi-transaction, aucune partie du système n'est tenue de procéder au nettoyage de l'état en cours du serveur. Un inconvénient majeur du design stateless réside dans la nécessité d'inclure des informations supplémentaires dans chaque requête, et ces informations supplémentaires doivent être interprétées par le serveur.

## Exemples

Un exemple de protocole sans état est le protocole HTTP, dans lequel chaque requête est auto-suffisante. Ce fonctionnement de HTTP diffère de celui du FTP, basé sur l'ouverture d'une session interactive avec l'utilisateur. Au cours de cette session, l'utilisateur dispose d'un menu pour s'authentifier et définir les différentes variables (répertoire de travail, le mode de transfert), le tout stocké sur le serveur de l'utilisateur de l'état.

## Empilement des couches de protocoles avec et sans état

Des interactions complexes peuvent être mises en place dans les différentes couches de protocoles de communication empilant des protocoles avec ou sans état. Un exemple typique est le protocole HTTP, qui est un protocole sans état, qui s'appuie sur le protocole TCP, un protocole avec état, qui s'appuie à son tour sur le protocole IP, un autre protocole sans état, qui est acheminé sur un réseau qui utilise le protocole BGP, qui est un protocole avec état, afin de transporter les paquets dans le réseau.

