sessioni e resto senza stato

0

Credo che questa domanda sia stata discussa a morte.

Stavo leggendo su REST e dice che deve essere senza stato.

Sì, capisco che ci sono stati di applicazione e stati di risorse.

Prendendo ad esempio un normale servizio web,

Dire se dovevo accedere dal PC A ed eseguire alcune transazioni senza disconnettersi.

Accedo dal PC B ed eseguo un'altra serie di transazioni. Tuttavia, a questo punto sembra che il server web sia in grado di sapere quale serie di transazioni ho eseguito in precedenza. Significa che il server memorizza tutti i dettagli delle mie sessioni?

Per alcuni servizi ti riportano addirittura alla pagina che stavi guardando in precedenza su PC A. Come è possibile se si suppone che sia stateless?

    
posta aceminer 14.10.2015 - 14:46
fonte

1 risposta

2

Essere apolidi non significa che sul server non siano presenti NESSUNA informazione, significa solo che la richiesta eseguita dal client contiene tutte le informazioni necessarie affinché il server gestisca la richiesta.

Quando si accede a un server, quel server può inviare un token di sessione in modo che possa conservare le informazioni tra le richieste. Tutto il server ha bisogno di inviare il token al server ad ogni richiesta successiva e può associare il token con le informazioni che erano persistenti. Questo è davvero il modo in cui funziona la parte HTTP del web.

Confronta questo con quello che fa FTP: quando ti connetti, il server imposta determinate variabili per te. Ad esempio, "sa" qual è la tua attuale directory di lavoro e quale modalità di trasferimento file (ASCII, Binary ...) userai. Il caricamento di un file su un server FTP non comporta l'invio del file, insieme con la directory corrente, la modalità di trasferimento, ecc ... Il server 'lo sa' perché questa informazione è associata alla tua sessione. / p>

Per quanto riguarda la modifica di un PC: quando si accede a un sito Web, è possibile registrare la pagina in cui ci si trova mentre li visiti e persistere in un database. Se ci si disconnette esplicitamente, queste informazioni vengono rimosse dal database. Finché non lo fai, accedere al sito web da un altro client ti riporta semplicemente sull'ultima pagina che era: l'applicazione ti identifica con il tuo nome utente, recupera l'ultima pagina dal database e te la mostra.

    
risposta data 14.10.2015 - 22:56
fonte

Leggi altre domande sui tag