Le sessioni, non sono altro che un tipo di variabile come le post, che anzichè avere la durata di una pagina hanno la durata specificata sul server (di efault 1400 secondi che sono 24 minuti).

Comunque la durata si riferisce all'ultima volta che la sessione è stata scritta, e anche se non è la regola si presume che chi sta utilizzando il sito prima o poi vada a riscrivere la sessione, quindi anche se non è una regola si può azzardare a dire che la sessione dura 24 minuti dopo l'ultima azione dell'utente.

per settare la durata dal php metti all'inizio della pagina :

codice:
ini_set("session.gc_maxlifetime","3600");  // 1 ora
La differenza tra cookie e sessione, è che il cookie viene scritto sul client, la sessione su un file sul server.

Io i cookie li uso raramente, in genere vengono usati per salvare informazioni riguardo il client. ad esempio se devi ricordare un utente per evitare di proporgli il login è comodo scriverlo sul client anzichè sul server, mentre se sono informazioni riguardo l'applicazione meglio la sessione, che rimane sul server e viene pulita quando non più necessaria.

Ciao