La gestione delle sessioni in php – La teoria

Per introdurre la gestione delle sessioni in php, occorre prima scendere in dettaglio con un pò di teoria al fine di comprendere meglio, nella seconda parte del post,i concetti fondamentali della sintassi del codice.

Il protocollo che sta alla base del Web, l’HTTP, è un protocollo senza stato (“stateless“). Ciò significa, in parole povere, che quando browser e Web server comunicano ed eventualmente iniziano a scambiarsi dati,  il server resta ignaro di quali pagine siano state richieste nel passato dallo stesso utente, né tantomeno sa quale client si stia ad esso connettendo e gli stia richiedendo le pagine web.
Uniche conoscenze (e peraltro nemmeno così sicure e affidabili) possono essere l’indirizzo IP pubblico con cui il client è connesso a Internet ed il tipo di browser o sistema operativo utilizzato.

Intuite bene cosa comporta questo. Qualora un utente volesse visualizzare alcune pagine di un’area riservata tramite log-in iniziale, dovrebbe, stando così le cose effettuare il log-in per ciascuna pagina visitata.

Il PHP (così come altri linguaggi), dalla versione 4, ha cercato di aggirare questo enorme problema includendo un sistema di sessioni. Vediamo nel dettaglio. In pratica, si crea una sessione quando si vuol dare la possibilità all’utente di essere riconosciuto dopo essersi loggato (username/password) in modo da visitare tutte le pagine che desidera senza necessariamente autenticarsi ad ogni richiesta di nuova pagina.
In tal caso, il PHP salva, lato server, un file di testo che contiene dati rilevanti per riconoscere l’utente e, rappresenta, quindi, il file di sessione relativo all’utente autenticato.

Il nome del file di testo è una stringa di ben 32 caratteri alfanumerici che viene inviata al browser (completamente trasparentemente sia per l’utente che per il programmatore). In tal modo, quando l’utente richiede un’altra pagina Web, il browser provvederà a inviare di nuovo il nome della sessione al server e così quest’ultimo conosce bene il file di sessione relativo all’utente e quali dati associare alla nuova richiesta.

Questa stringa che identifica la sessione e che viene scambiata tra browser e server prende il nome di SID (Session IDentifier).

La foto qui sotto, tratta da Mrwebmaster, spiega molto bene cosa avviene durante il processo di scambio suddetto.

php sessioni La gestione delle sessioni in php   La teoria

Ci sono due modalità con cui il browser può inviare il SID al server : tramite cookie (header HTTP) o, se il client non accetta i cookies, tramite query string (quindi come parametro in GET). Va precisato che i dati restano associati all’utente fino a che non viene chiusa e, quindi, distrutta la sessione stessa (chiusura del browser).

Nella seconda parte, dedicata alla pratica, vedremo in dettaglio la sintassi corretta per gestire le sessioni in php. Vi aspetto!

Nessun commento.

Lascia un commento