Domanda

Recentemente stavo scavando sulle sessioni di Cookieless, sono arrivato a un articolo che dice che ogni volta che viene creata la sessione sul server, il suo ID è archiviato nei cookie, sulla macchina client, mi pensavo nel mio college che le sessioni sono archiviate su Il server, e se sessionid è nei cookie e i cookie sono archiviati nella macchina client a livello locale, come si può dire che la sessione è memorizzata sul server, è giusto, che le sessioni sono archiviate sul server? Se sì, qual è il concetto di sessione Cookieless, qualcuno può spiegarmi

È stato utile?

Soluzione

Lo stato di sessione è (quasi sempre) memorizzato sul server ed è identificato da un numero casuale, il token di sessione.

Quel token deve essere archiviato dal client e inviato al server insieme alle sue richieste HTTP (in modo che il server possa ricordare di averlo visto prima e associare la sessione alla richiesta).

Come si può dire che la sessione è archiviata sul server, è giusto, che le sessioni sono archiviate sul server?

Solo il token di sessione viene archiviato sul client e poiché si tratta di un numero casuale, non contiene alcuna informazione utile in sé. Diventa prezioso solo insieme ai dati memorizzati sul server.

Se sì, qual è il concetto di sessione Cookieless

Il modo più semplice per conservare il token è usare i cookie. Questo è ciò per cui i biscotti sono stati inventati. Le alternative stanno consegnando il cookie avanti e indietro usando variabili di forma nascosta o come parte dell'URL.

Altri suggerimenti

La sessione è memorizzata sul server. Ogni sessione associata all'ID (il provider di stato di sessione più semplice in ASP.NET è solo un dizionario in memoria con ID come chiavi). Questo ID è archiviato anche nel cookie del cliente, ma in caso di sessioni Cookieless, l'ID è archiviato nell'URL (esempio).

Pensa all'ID di sessione come a una chiave in una tabella e allo stato di sessione come valore. Solo la chiave viene inviata ai clienti, non al valore.

Nel caso di ASP.NET, lo stato di sessione stesso è un dizionario che contiene coppie chiave / valore.

Se stai utilizzando il provider di sessione SQL Server standard, la tabella che ho menzionato sopra si chiama ASPStateTempSessions. SessionId è il PK e il serializzato Dictionary è conservato in entrambi i SessionItemShort o SessionItemLong colonna.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top