direi che c'è un attimino di confusione

la sessione non va tenuta "aperta" perché è qualcosa di "stateless" ovvero senza stato

la sessione va letta in base alle informazioni passate dal browser (il cookie PHPSESSID ad esempio se si usano le sessioni di php, o alternativamente il parametro GET con lo stesso onme) e quindi va usata

può stare su file, su db, su cache (memcache, eaccelerator, apc ....)

ma sono tutte cose separate

i cookie servono per tracciare l'utente, ovvero associare la connessione del client (browser) ad una serie di informazioni (sessione)

poi come la sessione venga implementata (db, file, cache) o la tracciatura venga gestita (cookie, query string) non ha importanza ... quello che conta è il concetto di fondo