Verstößt die Verwendung von Sitzungen in einer RESTful-API wirklich gegen RESTfulness? Ich habe viele Meinungen gesehen, die in beide Richtungen gingen, aber ich bin nicht davon überzeugt, dass Sitzungen RESTlos sind . Aus meiner Sicht:
- Die Authentifizierung ist für RESTfulness nicht verboten (andernfalls würden RESTful-Dienste nur wenig genutzt).
- Die Authentifizierung erfolgt durch Senden eines Authentifizierungstokens in der Anforderung, normalerweise des Headers
- Dieses Authentifizierungstoken muss irgendwie abgerufen werden und kann widerrufen werden. In diesem Fall muss es erneuert werden
- Das Authentifizierungstoken muss vom Server validiert werden (andernfalls wäre es keine Authentifizierung).
Wie verletzen Sitzungen dies?
- Auf der Clientseite werden Sitzungen mithilfe von Cookies realisiert
- Cookies sind einfach ein zusätzlicher HTTP-Header
- Ein Sitzungscookie kann jederzeit abgerufen und widerrufen werden
- Sitzungscookies können bei Bedarf eine unendliche Lebensdauer haben
- Die Sitzungs-ID (Authentifizierungstoken) wird serverseitig überprüft
Für den Client ist ein Sitzungscookie genau dasselbe wie jeder andere auf HTTP-Headern basierende Authentifizierungsmechanismus, außer dass der Cookie
Header anstelle des Authorization
oder eines anderen proprietären Headers verwendet wird. Wenn keine serverseitige Sitzung mit dem Cookie-Wert verknüpft wäre, warum würde dies einen Unterschied machen? Die serverseitige Implementierung muss den Client nicht betreffen, solange sich der Server RESTful verhält . Daher sollten Cookies für sich genommen keine API RESTless machen , und Sitzungen sind lediglich Cookies für den Client.
Sind meine Annahmen falsch? Was macht Sitzungscookies RESTless ?