PHP  »  Articoli  »  Programmazione Php 

Analisi delle sessioni in PHP: durata e serializzazione degli array

di: Claudio Garau     23 Ottobre 2008

Le sessioni sono uno degli strumenti più utilizzati durante lo sviluppo delle applicazioni in PHP, le procedure per inizializzare le sessioni, rigenerarne gli Id, utilizzarle per passare dati da una pagina all'altra e terminarle sono molto semplici; ma probabilmente non tutti sanno come queste funzionano realmente, come avviene il loro processo di memorizzazione e quali sono gli elementi che le costituiscono.

In questo breve articolo verrà approfondito l'argomento relativo ai meccanismi che permettono di utilizzare le sessioni all'interno di un'applicazione senza ignorare le problematiche relative alla sicurezza.

Cosa sono le sessioni? Differenza tra cookie e sessioni

Generalmente con il termine sessione si intende un sistema di comunicazione tra un utente (inteso anche come unità logica) e un determinato applicativo o un servizio messo a disposizione da esso; sulla base di questo sistema utente e applicazione avranno un determinato periodo di tempo per potersi scambiare delle informazioni.

Non di rado, si utilizza lo stesso termine anche per indicare l'intervallo di tempo in cui lo scambio di informazioni avviene.

Una sessione è dotata di un proprio ciclo di vita delimitato da tre fasi:

  • inizializzazione: si tratta di una fase di avvio in cui iniziano le operazioni di scambio dei dati tra un client, provenienti quindi da un utente, e un'applicazione che gestisce un determinato servizio, questo avviene per esempio nel momento in cui si accede ad un'area riservata basata su procedura di autenticazione;
  • comunicazione (sessione di lavoro): in questa fase la sessione consente l'interscambio di dati tra un utente e un servizio, ciò è resa possibile dal fatto che durante l'inizializzazione il server alloca in memoria alcune informazioni chiamate "parametri di sessione", grazie ad essi l'applicazione è in grado di riconoscere l'utente corrente permettendogli di accedere ai dati scambiati e di manipolarli;
  • terminazione: ovvero la chiusura di una sessione che può avvenire anche su richiesta dell'utente come per esempio nelle procedure di "logout", essa consiste nella cancellazione delle informazioni di sessione; se l'applicazione lo prevede, una sessione può essere terminata anche da un periodo di latenza in cui non vengono scambiati dati tra utente e servizio.

Sessioni e cookie vengono spesso confusi per via del fatto che sono spesso utilizzati per finalità molto simili, in realtà vi è una grande differenza tra questi due strumenti, infatti, le sessioni vengono memorizzate lato server, mentre i cookie sono allocati lato client (dal browser di navigazione).

Il motivo per cui le sessioni vengono memorizzate in remoto è molto semplice, si tratta infatti di un accorgimento di sicurezza in quanto un server Web è certamente uno strumento più sicuro con cui gestire informazioni (spesso riservate), rispetto ad un comune browser per la navigazione su Internet.

Le sessioni utilizzano i cookie ma non sono la stessa cosa, semmai è giusto dire che i cookie sono uno strumento utilizzato dalle sessioni per ricondurre un determinato Id di sessione ai dati gestiti attraverso di esse.

Guide PHP

Guida Yii Framework

Come creare applicazioni Web in modo semplice e veloce con il...

Guida Zend Framework

Diventate professionisti dello sviluppo Web. Zend Framework è lo...

Guida Applicazioni Facebook con PHP

Come realizzare un'applicazione per Facebook. Dalle basi della...

Altre guide

Newsletter @PHP

Ogni lunedì, direttamente nella tua e-mail: script, articoli, guide e tutorial su PHP, MySQL e Apache.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso PHP per Webmaster

11 Giugno 2012 a Milano
Disponibilità: 7 Posti

Corso Google AdWords Base

25 Giugno 2012 a Milano
Disponibilità: 7 Posti

Corso Google AdWords Base

05 Giugno 2012 a Roma
Disponibilità: 7 Posti