Sessione nei servizi web RESTful, come funziona?

7

In un servizio web, come fa il server a sapere quale richiesta appartiene a quale sessione?

So che per un'applicazione Web, il server Web controlla il cookie (o il parametro query sessonId nel caso in cui i cookie siano disabilitati) in modo che sappia a quale sessione è associata la richiesta. Ma per una richiesta proveniente da un client di riposo, come lo sa il server?

    
posta dnang 28.10.2013 - 14:21
fonte

1 risposta

8

Se davvero si deve avere la gestione delle sessioni nella propria API, il client sarebbe responsabile di gestire session_id e aggiungerlo all'URL, se necessario. Come esattamente gestire questo dipenderà dal tuo stack tecnologico. Ad esempio, Rails ha come impostazione predefinita i cookie, ma (se abilitato) accetta anche un parametro _session_id come parte dell'URL.

Le informazioni rilevanti normalmente memorizzate nel cookie insieme all'ID di sessione devono quindi essere gestite dal server. In Rails dovresti cambiare l'archiviazione della sessione dalla memorizzazione dei cookie a una delle opzioni del server, ad esempio memorizzarla nel database o memcached con session_id come chiave.

Ma dovresti pensarci due volte se vuoi aggiungere questa funzionalità alla tua API. Essere apolidi manterrà la tua API più semplice e facile da mantenere. Se possibile, è preferibile lasciare che il cliente si preoccupi dello stato e inviare tutte le informazioni necessarie ad ogni richiesta. (come usare l'autenticazione di base HTTP invece di memorizzare un utente corrente in una sessione).

    
risposta data 28.10.2013 - 14:47
fonte

Leggi altre domande sui tag