Mislim da to nije najbolje objašnjenje razlike između sesija i kukija.
Pošto je HTTP protokol request/response protokol (znači web browser zahteva neku stranicu, i web server mu je vrati), pojavila se potreba da se neke stvari čuvaju između odvojenih zahteva nekoj (ili nekim) stanicama na web serveru, kako bi on mogao da pruži korisniku prilagođeniju stranicu korisniku pri sledećim zahtevima koje korisnik zahteva.
Cookie je podatak (ili više podataka) koji se čuvaju u web browser-u između zahteva nekoj stranici ili grupama stranica za koje je taj cookie važeći. Znači jedna stranica postavi cookie, koje ostale stranice (uglavnom serverske skripte poput PHP-a), mogu da čitaju, i tako daju korisniku prilagođeniju stranicu. (Recimo google koristi cookije za čuvanje podešavanja kao što je jezik).
Cookie ima i svoja ograničenja, jedan cookie ne može biti veći od 2kb, i jedan sajt ne može imati više od 20 cookie-a, tako da je maksimalna količina podataka koju jedan sajt može sačuvati u web browseru 40kb (barem je ovo teoretski tako).
Često ovo nije dovoljno prostora za čuvanje svih podataka koji su bitni za sajt, a još češća je situacija da autor stranica/skripti ne želi da korisnik vidi podatke koji su sačuvani, a ovo se ne može uraditi uz pomoć kukija.
Sesije su jedan od načina rešavanja gore navedenih problema. Naime, sesija je skup podataka koji se čuvaju na serveru, i imaju određeno vreme trajanja (na primer 1h). Web browseru se samo šalje identifikacija te sesije (grupe podataka), kako bi druga strana/skripta znala kojim podatcima da pristupi. U PHP-u, sesije se čuvaju u fajlovima (svaka sesija, poseban fajl), a web browseru se šalje samo ime fajla u kome se na serveru čuvaju podatci.
Ta identifikacija sesije se može čuvati u cookie-ju, što je po meni bolje rešenje, ali kako svi web browseri ne prihvataju kukije, postoji i alternativni način, a to je da se ta identifikacija prosledi sledećoj stranici kao deo URL-a.
Tako da se sesije i kukiji, razlikuju po tome što se sesije čuvaju na serveru, a kukiji u web browseru, i da sesije skoro uvek imaju kraće vreme isteka od kukija, tako da se veoma retko mogu koristiti za trajnije čuvanje podataka (recimo o korisniku)...
Nadam se da sam bio dovoljno jasan.
Sad ja znam zašto sam vam ovo ispričao, ovo će sigurno nekome koristiti....