L'utilisation de sessions dans une API RESTful viole-t-elle vraiment RESTfulness? J'ai vu beaucoup d'opinions dans les deux sens, mais je ne suis pas convaincu que les sessions soient RESTless . De mon point de vue:
- l'authentification n'est pas interdite pour RESTfulness (sinon il y aurait peu d'utilité dans les services RESTful)
- l'authentification se fait en envoyant un jeton d'authentification dans la demande, généralement l'en-tête
- ce jeton d'authentification doit être obtenu d'une manière ou d'une autre et peut être révoqué, auquel cas il doit être renouvelé
- le jeton d'authentification doit être validé par le serveur (sinon ce ne serait pas l'authentification)
Alors, comment les sessions violent-elles cela?
- côté client, les sessions sont réalisées à l'aide de cookies
- les cookies sont simplement un en-tête HTTP supplémentaire
- un cookie de session peut être obtenu et révoqué à tout moment
- les cookies de session peuvent avoir une durée de vie infinie si besoin est
- l'ID de session (jeton d'authentification) est validé côté serveur
En tant que tel, pour le client, un cookie de session est exactement le même que tout autre mécanisme d'authentification basé sur un en-tête HTTP, sauf qu'il utilise l'en- Cookie
tête à la place du Authorization
ou d'un autre en-tête propriétaire. S'il n'y avait pas de session attachée à la valeur du cookie côté serveur, pourquoi cela ferait-il une différence? L'implémentation côté serveur n'a pas besoin de concerner le client tant que le serveur se comporte RESTful. En tant que tels, les cookies en eux-mêmes ne devraient pas rendre une API RESTless , et les sessions sont simplement des cookies pour le client.
Mes hypothèses sont-elles fausses? Qu'est-ce qui rend les cookies de session RESTless ?