L'utilizzo delle sessioni in un'API RESTful sta davvero violando RESTfulness? Ho visto molte opinioni andare in entrambe le direzioni, ma non sono convinto che le sessioni siano RESTless . Dal mio punto di vista:
- l'autenticazione non è vietata per RESTfulness (altrimenti ci sarebbe poco uso nei servizi RESTful)
- l'autenticazione viene eseguita inviando un token di autenticazione nella richiesta, generalmente l'intestazione
- questo token di autenticazione deve essere ottenuto in qualche modo e può essere revocato, nel qual caso deve essere rinnovato
- il token di autenticazione deve essere convalidato dal server (altrimenti non sarebbe autenticazione)
Quindi, in che modo le sessioni violano questo?
- lato client, le sessioni sono realizzate utilizzando i cookie
- i cookie sono semplicemente un'intestazione HTTP aggiuntiva
- un cookie di sessione può essere ottenuto e revocato in qualsiasi momento
- i cookie di sessione possono avere una durata infinita se necessario
- l'id sessione (token di autenticazione) è validato lato server
In quanto tale, per il client, un cookie di sessione è esattamente uguale a qualsiasi altro meccanismo di autenticazione basato su intestazione HTTP, tranne per il fatto che utilizza l' Cookie
intestazione invece Authorization
dell'altra intestazione proprietaria. Se non vi era alcuna sessione allegata al valore del cookie lato server, perché ciò farebbe la differenza? L'implementazione sul lato server non deve riguardare il client purché il server si comporti RESTful. Pertanto, i cookie da soli non dovrebbero rendere un'API RESTless e le sessioni sono semplicemente cookie per il client.
I miei presupposti sono sbagliati? Cosa rende RESTless i cookie di sessione ?