Gestione statistica del timeout

L'HTTP è un protocollo stateless, quindi a rigor di logica non esiste un tempo di connessione, esistono solo le singole interrogazioni del browser al server HTTP. Per questo motivo è necessario fissare un tempo limite dopo il quale si suppone che la sessione sia stata chiusa (nel modulo Registro questo tempo è fissato a 30 minuti ed è facilmente modificabile: viene definita la costante REGISTER_SESSION_TIMEOUT. Dovendo fare un po' di statistica si può dire che la durata della sessione è una variabile aleatoria uniforme che può assumere valori da (ultimo log - login) a (ultimo log - login + REGISTER_SESSION_TIMEOUT). Il Registro può funzionare in due modalità: senza calcolare lo scarto d'errore oppure calcolando lo scarto d'errore.

Senza il calcolo dello scarto d'errore
In questa modalità (che è quella di default) non viene considerato lo scarto d'errore e la durata della sessioni sarà pari a: ultimo log - login + REGISTER_SESSION_TIMEOUT. Per esempio se il primo log di un utente è alle 10.00 e l'ultimo è alle 11.00, sapendo che REGISTER_SESSION_TIMEOUT = 30 minuti si ha: (11.00 - 10.00) + 30 min = 90 minuti

Con il calcolo dello scarto d'errore
In questa modalità il logout è posto pari al valor medio della variabile aleatoria. Nell'esempio precedente poiché l'ultimo log è avvenuto alle 11.00 e non abbiamo avuto altri log almeno fino alle 11.30, l'utente potrebbe essersi disconnesso nel periodo che va dalle 11.00 alle 11.30, pertanto alle 11.15 verrà dichiarato il logout e verrà attribuita alla sessione una deviazione standard di 15 minuti.

Differenze tra i due approcci
Essenzialmente il secondo approccio è più preciso e si avvicina maggiormente alla realtà, inoltre permette di fare stime statistiche sugli intervalli di fiducia della somma delle singole sessioni. Il primo invece è più essenziale anche se, per corsi online lunghi, attribuisce all'utente molte più ore rispetto a quelle in cui effettivamente è stato presente sulla piattaforma.