Il protocollo HTTP è senza stato. Le sessioni sono un modo per preservare lo stato del client attraverso le richieste HTTP. È possibile scegliere di farlo con la gestione della sessione integrata di una piattaforma o eseguirla da soli con i parametri della stringa di query. In ogni caso, alcuni concetti di sessione sono necessari per molte attività.
Probabilmente al tuo collega non piace un'implementazione specifica o non hai utilizzato le sessioni per gli scopi previsti. Se è necessario conservare le informazioni su una specifica connessione client attraverso richieste HTTP, è necessaria una qualche forma di persistenza della sessione.
I seguenti problemi sono specifici dell'implementazione:
Untyped nature of session variables
Global scope nature of session variables
Load balancing servers losing sessions
Application pools/servers restarting
Ad esempio, lavoro spesso in PHP e memorizzo le mie informazioni sulla sessione in un database relazionale. Quindi le mie variabili di sessione sono state digitate. Il bilanciamento del carico e il riavvio del server non causano problemi di sessione.
Questo è più interessante:
Session time-outs causing loss of state
Le sessioni vengono spesso conservate tramite i cookie. Questi possono essere cancellati dal cliente in qualsiasi momento. Ma possono anche essere preservati tramite un parametro stringa di query e quindi non scadono mai il tempo sul client. Il timeout del server dipende da te. Quindi anche questo problema è specifico per l'implementazione.
Non buttiamo fuori l'intero concetto di sessioni solo perché non ci piace una particolare implementazione. Qualsiasi buon framework per applicazioni web faciliterà l'uso corretto delle sessioni per preservare gli accessi degli utenti o conservare qualsiasi altra cosa specifica per la visita corrente dell'utente. Il record del database di un utente può (e dovrebbe) essere utilizzato per memorizzare elementi specifici quando si accede. I visitatori anonimi, tuttavia, possono avere informazioni temporanee che meritano di essere conservate nella loro sessione, come un breve elenco di pagine visitate o la preferenza a nascondi un avviso che hanno già visto. Generalmente solo le informazioni temporanee più piccole sono appropriate per l'archiviazione di sessione.