4.10. Gestion de l'état de l'application
4.10. Gestion de l'état de l'application
Les applications utilisant HTTP doivent soigneusement considérer comment elles gèrent l'état. HTTP est souvent décrit comme "sans état", ce qui signifie que chaque requête est indépendante et que le serveur n'a pas besoin de se souvenir des requêtes précédentes. Cependant, de nombreuses applications nécessitent une certaine forme de gestion d'état.
Il existe plusieurs façons de gérer l'état dans les applications HTTP:
-
État côté client: Le client maintient l'état et l'inclut dans chaque requête. C'est l'approche la plus évolutive mais nécessite que le client gère l'état.
-
État côté serveur: Le serveur maintient l'état de chaque client, généralement identifié par un jeton de session. C'est plus pratique pour le client mais moins évolutif pour le serveur.
-
État de la ressource: L'état est représenté comme des ressources qui peuvent être récupérées et modifiées à l'aide de méthodes HTTP. Cela s'aligne bien avec les principes REST.
Les applications DEVRAIENT préférer les conceptions sans état lorsque cela est possible, car elles ont tendance à être plus évolutives et plus faciles à déployer. Lorsque l'état est nécessaire, les applications DEVRAIENT:
-
Spécifier clairement comment l'état est maintenu et identifié.
-
Envisager d'utiliser des cookies [COOKIES] pour la gestion de session, mais être conscient de leurs implications en matière de sécurité et de confidentialité.
-
Éviter de garder un état sur le serveur qui pourrait être maintenu sur le client.
-
Utiliser des jetons d'authentification plutôt que des sessions lorsque cela est approprié.
-
Concevoir la gestion d'état pour fonctionner avec les intermédiaires et les caches.
Les applications NE DEVRAIENT PAS s'appuyer sur des fonctionnalités comme la persistance de connexion TCP pour maintenir l'état, car les connexions peuvent être fermées ou multiplexées.