Mah, premesso che non hai specificato il campo d'applicazione, ma in generale, supponendo che intendessi la gestione di sessioni e variabili da memorizzare nel corso delle pagine, io direi sessioni; sono piu' sicure a mio modo di vedere, e molto flessibili. I cookie poi dipendono dall'utente, se ci fai grosso affidamento, e l'utente li ha disabilitati, ti salta tutto. Le variabili di sessione invece sono sempre presenti, e anche la stessa session_id, che in genere viene memorizzata automaticamente su cookie, puo' essere tranquillamente gestita via GET in loro assenza con la semplice riga di codice (d'esempio):

codice:
$url = (!SID) ? "index.php" : "index.php?".SID;
^_^