8 Eylül 2023 Cuma

Cookie ve Session | Çerez ve oturum arasındaki fark

Merhaba Arkadaşlar,
PHP ile Cookie ve Session (Çerez ve oturum) arasındaki farkı inceleyelim. Birbirine benzer oldukları için farkını çözebilme amacıyla örneklerle denemeler yapıp sonuçları inceleyeceğiz. Denemeye PHP ile bir sayfa açıp Cookie oluşturarak başlayalım(deneme.php). Kodumuzda İki tane Cookie değişkeni oluşturalım: 

// Bu satırda iki adet cookie (çerez) yaratıyoruz ve ,
// internet tarayıcısına cookie'yi yolluyoruz
setcookie("cookie_ismi_1", "cookie degeri", time()+3600); 
setcookie("cookie_ismi_2", "cookie degeri", time()+3600,"/deneme"); 

Daha önce kurduğum yerel sunucuda PHP kodunu çalıştırdıktan sonra Firefox ile çerezlere bakalım: 

Gördüğünüz gibi Cookie isimlerini değerlerini görebiliyoruz. Çerezlere dokunmadan PHP kodumuzu modifiye edip iki tane Session oluşturalım:
// session_start komutu ile bir tane session ID yaratılıp
// internet tarayıcısna id değeri yollanıyor. 
session_start(); 
// İki tane session (oturum) değişkeni oluşturalım
$_SESSION['session_degiskeni_1'] = "session_degeri"; 
$_SESSION['session_degiskeni_2'] = "session_degeri"; 

Şimdi çerezlere bakalım: 


Çerezler kısmında PHPSESSID isimli bir cookie ve uzun bir session id değerini görüyoruz. Fakat session değişkenlerini göremiyoruz bu kısımda. İşte küçük fark burada ortaya çıkıyor: Session oluşturduğumuz zaman internet tarayıcısına bir session id değeri yollanıyor fakat değişkenler sunucuda tutuluyor. Session değişkenleri sunucuda tutulduğu için session değişkenlerin sunucuda nerede tutulduğu sorusu akla geliyor. PHP'de session değişkenleri Windows ve XAMPP kullanıyorsanız standart olarak C:xampp/tmp klasöründe saklanıyor.
Tabii bunu da session_save_path($savepath) fonksiyonu ile değiştirebilirsiniz.

Özetle session ile cookie arasındaki farkın session'da değişkenlerin sunucuda tutulduğu, cookie oluşturulduğunda ise cookie değişkenlerin kullanıcı (istemci) tarafında tutulduğudur. Benzer tek yönü ise session oluşturulduğunda otomatik oluşturulan session id numarasının, cookie ile kullancının tarayıcısına yollanmasıdır.

Hiç yorum yok:

Yorum Gönder