2012-01-17 11 views
18

Qual è esattamente lo scopo di una sessione HTTP?Qual è lo scopo di una sessione HTTP?

Ho cercato su google questo, ma non riesco a ottenere una risposta diretta - Una sessione dovrebbe essere cancellata "quando un utente chiude il browser", ma non è chiaro per me- Significa chiudere il browser finestra o uscire dall'applicazione browser? Un utente con due finestre del browser aperte contemporaneamente mantiene due sessioni diverse? E le schede del browser sono sempre parte se la stessa sessione?

risposta

13

Ciò dipenderà dal modo in cui si tracciano le sessioni nell'applicazione.

Per impostazione predefinita, sono monitorati da HttpOnly cookies. Ciò significa che se l'utente chiude la scheda corrente, non perde la sessione. Se chiude il browser, tuttavia, perde la sessione.

Se si utilizza una modalità senza cookie per tenere traccia delle sessioni (cookieless="true"), ASP.NET aggiungerà un token personalizzato a tutti gli URL indicando che un utente può essere registrato con 2 sessioni diverse su 2 schede diverse della stessa istanza del browser.

+0

Darin- così diresti che per i cookie HttpOnly, la sessione è limitata alla durata di ciascuna finestra * del browser *? – Yarin

+0

@Yarin, sì, è esattamente quello che sto dicendo. E se cambi qualcosa in una scheda del browser come ad esempio la disconnessione, sarai automaticamente disconnesso da tutte le altre schede se hai sessioni attive. –

5

La risposta a tutte le vostre domande è "dipende".

Più finestre del browser possono essere più sessioni o possono essere la stessa sessione. Dipende dal comportamento del browser e da come hai aperto le finestre.

In IE, è disponibile un'opzione di menu per "Nuova finestra" e una per "Nuova sessione". L'opzione 'Nuova finestra' manterrà la stessa sessione, l'opzione 'Nuova sessione' aprirà una nuova finestra con una sessione diversa. Puoi anche ottenere una nuova sessione in IE tenendo premuto il tasto Maiusc mentre avvii il browser.

Se è necessario assicurarsi che tutte le sessioni siano terminate, chiudere tutte le finestre del browser.

+0

BNL- Cosa intendi per "come hai aperto le finestre"? Puoi elaborare? – Yarin

+0

Modificato in una spiegazione. – BNL

+0

OK grazie mille vorrei poterti dare un credito parziale – Yarin

3

I cookie di sessione vengono solitamente cancellati quando l'intero browser viene chiuso. Poiché più schede/finestre condividono gli stessi cookie, quelle schede/finestre utilizzeranno la stessa sessione.

Tuttavia, un'applicazione può anche passare l'identificatore di sessione tramite l'URL. In questo caso ogni tabulazione/finestra avrà una propria sessione purché non la si apra attraverso un collegamento con un id di sessione valido.

+0

ThiefMaster - "quando l'intero browser esce" = esci dall'app browser? – Yarin