Ciao!Originariamente inviato da alka
Vista la precisazione, mantengo la discussione qui, perché in effetti è molto borderline.
Tornando al problema, come è stato detto anche da altri, i browser non gestiscono le sessioni, ma inviano le informazioni memorizzate nel "cookie di sessione" o tramite l'indirizzo, ed è il server che le gestisce.
Detto questo, non dovrebbero esserci particolari accorgimenti da prendere lato server nello sviluppo di applicazioni, poiché è sufficiente appoggiarsi alla gestione della sessione fornita dal framework in uso, sia esso ASP, ASP.NET, JSP, PHP, ecc.
Ciao!![]()
Continuo la mia discussione borderline, perchè credo che in alcuni casi possa avere un certo interesse, e visto che nel frattempo ho scoperto qualcosa, vi posto il mio contributo, sperando possa risultare utile a qualcuno;
Ovviamente è arcinoto che i browser non gestiscono la sessione, essendo http stateless, ma il problema che ponevo è un altro, ed evidentemente non sono riuscito a spiegarmi.
Per gestione della sessione da parte del browser intendo questo:
come si comporta il browser quando, fruendo della stessa applicazione un utente:
1) si logga
2) utilizza per un po' l'applicazione, facendo delle query, scrivendo sul db, ecc.
3) poi ad un certo punto apre un link di questa applicazione in una nuova istanza del browser;
che succede adesso ? Cosa fa il browser ? assegna un nuovo ID di sessione alla nuova istanza del browser o lascia lo stesso ID di sessione? Se mi consentite questo ha una certa importanza per chi sviluppa lato server, perché IMHO una situazione del genere dovrebbe essere gestita per non "inquinare" il contesto con dati sporchi, se l'utente si mette a giocare con le finestre del browser.
Ora quello che scoperto nel frattempo è che IE, dalla versione 8.0 in poi ha cambiato la sua politica di gestione della sessione:
a) prima di IE 8.0, aprire due istanze del browser (cliccando sulla icona di IE sul desktop) implicava che il browser assegnava due ID di sessione diversi alle due istanze, anche se ci girava la stessa applicazione. Se invece apro la nuova finestra con CTRL+N l'ID di sessione è lo stesso tra le due finestre.
b) da IE 8.0 in poi la situazione è cambiata: la Microsoft, come potete leggere in questi due articoli che vi segnalo sotto, ha deciso di far gestire l'attribuzione degli ID di sessione al browser in modo "intelligente"poiché ad ogni istanza corrisponde un processo sul client, per non sovraccaricare la macchina, IE 8.0 decide lui se deve assegnare un nuovo ID di sessione alla nuova finestra del browser oppure condividere quello della prima finestra già aperta. Se poi voglio forzare l'apertura di una nuova finestra del browser con un nuovo id di sessione, devo utilizzare il comando file - nuova sessione.
Firefox e Chrome hanno un comportamento simile , ma non ho ancora scoperto se hanno, come IE, la possibilità di forzare la nuova sessione.
Eccovi i link agli articoli Microsoft:
Session management within Internet Explorer 8.0
Clicking on the blue “e” in taskbar does not launch a new process in IE8
Ciao
Emanuele