Oturum ve Çerezler Arasındaki Fark

Oturum ve Çerez Arasındaki Temel Fark

  • Oturumlar, kullanıcı bilgilerini içeren sunucu tarafı dosyalarıdır, Çerezler ise kullanıcı bilgilerini içeren istemci tarafı dosyalarıdır.
  • Oturum Çerez'e bağımlıdır ancak Çerez bir oturuma bağlı değildir.
  • Oturum, kullanıcı tarayıcısını kapattığında sona erer; Çerezlerin süresi ise sizin belirlediğiniz süreye bağlı olarak sona erer.
  • Bir Oturumda istediğiniz kadar veri depolayabilirsiniz ancak Çerezdeki veri depolama alanı yalnızca 4KB'dir.
  • Bir oturumdaki kayıtlı tüm veriler Session_destroy() komutu kullanılarak yok edilebilir. Ancak, bir çerezden veriyi kaldırmak için unsetcookie() gibi bir komut yoktur.  

Oturum ve Çerezler Arasındaki Fark
Oturum ve Çerezler Arasındaki Fark

Burada aradaki farkı analiz ettim. Oturum ve Çerez artılarını ve eksilerini kapsamlı bir şekilde değerlendirecekler.

Oturum nedir?

Oturum, sunucuda depolanan genel bir değişkendir. Her oturuma, depolanan değerleri almak için kullanılan benzersiz bir kimlik atanır. Bir oturum oluşturulduğunda, benzersiz oturum kimliğini içeren bir çerez kullanıcının bilgisayarında depolanır ve sunucuya yapılan her istekle birlikte döndürülür. İstemci tarayıcısı çerezleri desteklemiyorsa, benzersiz oturum kimliği URL'de görüntülenir. Oturumlar, çerezlere kıyasla nispeten büyük miktarda veri depolama kapasitesine sahiptir.

Tarayıcı kapatıldığında oturum değerleri otomatik olarak silinir. Değerleri kalıcı olarak saklamak istiyorsanız bunları veritabanı.

Tıpkı $_COOKIE dizi değişkeni gibi, oturum değişkenleri de $_SESSION dizi değişkeninde saklanır. Çerezlere benzer şekilde, oturumun herhangi bir HTML etiketinden önce başlatılması gerekir.

Sessions'ı neden ve ne zaman kullanmalıyım?

Oturumlar, değerleri bir sayfadan diğerine aktarmak için kullanılır. Kullanıcı kimliği gibi önemli bilgileri, kötü niyetli kullanıcıların kurcalayamayacağı sunucuda daha güvenli bir şekilde saklarlar.

Ayrıca, çerezleri desteklemeyen tarayıcılarda çerezlere alternatif olarak global değişkenleri daha verimli ve daha güvenli bir şekilde depolamak istediğinizde de kullanılır. Bunları URL'de iletmekten veya 4KB'den daha büyük kapasiteye sahip bilgileri geçici olarak depolayan alışveriş sepeti gibi bir uygulama geliştirirken daha iyidir.

PHP ile Oturum Oluşturma

Bir oturumu başlatmak için PHP'de session_start işlevini başlatmanız ve ardından değerlerinizi $_SESSION süper küresel dizisine kaydetmeniz gerekir.

Sayfa ziyaretlerinin sıklığını izlemek istediğiniz senaryoyu düşünün. Seans kullanmak bu amaç için etkili bir yöntemdir.

Aşağıdaki örnek, oturumlar sırasında değerlerin nasıl oluşturulacağını ve erişileceğini göstermektedir:

<?php

session_start(); //start the PHP_session function 

if(isset($_SESSION['page_count']))
{
     $_SESSION['page_count'] += 1;
}
else
{
     $_SESSION['page_count'] = 1;
}
 echo 'You are visitor number ' . $_SESSION['page_count'];

?>
Çıktı:
You are visitor number 1

Seansın Avantajları

İşte benim açımdan seansın avantajları.

  • Birden çok istekte sürekli bir diyalog durumunu koruyarak kullanıcı etkileşimini geliştirir.
  • Kullanıcı verilerini geçici olarak depolayarak sunucu yükünü azaltır.
  • Sınırlı süreler boyunca kontrollü veri açığa çıkışı yoluyla güvenliği artırır.
  • Kullanıcı davranışı ve tercihlerine göre kişiselleştirilmiş deneyimlere olanak tanır.
  • Birden fazla adımı takip ederek karmaşık işlemleri kolaylaştırır.
  • Yeniden kimlik doğrulama ihtiyacını en aza indirerek web sitesi performansını artırır.
  • Kullanıcı oturumlarını dağıtılmış sistemlerde etkili bir şekilde yöneterek ölçeklenebilirliği destekler.

Seansın Dezavantajları

Deneyimlerime göre bunlar oturum kullanmanın dezavantajlarıdır.

  • Oturum verilerinin ele geçirilmesi durumunda veri ihlali riskini artırır.
  • Sunucu belleğini tüketerek genel sistem performansını düşürme potansiyeline sahiptir.
  • Yanlış yönetilirse tutarsız kullanıcı deneyimlerine yol açabilir.
  • Oturumları sürdürmek ve izlemek için ek sunucu kaynakları gerektirir.
  • Oturumun sona ermesi kullanıcı etkinliklerini kesintiye uğratarak hayal kırıklığına neden olabilir.
  • Oturum ele geçirme ve sabitleme saldırılarına karşı savunmasızdır.
  • Kalıcı veri depolama nedeniyle gizlilik düzenlemelerine uyumu zorlaştırabilir.

Çerez nedir?

Çerez, web sunucusunun istemci bilgisayarda sakladığı maksimum 4KB boyutunda küçük bir dosyadır. Bir çerez ayarlandıktan sonra, takip eden tüm sayfa istekleri çerez adını ve değerini döndürür. Bir çerez yalnızca verildiği alan adından okunabilir. Örneğin, www.guru99.com alanını kullanan bir çerez seti, kariyer.guru99.com alanından okunamaz. İnternet'teki web sitelerinin çoğu, reklamcılık gibi diğer alanlardan öğeler görüntüler. Bu unsurları sunan alan adları da kendi çerezlerini ayarlayabilir. Bunlar üçüncü taraf çerezleri olarak bilinir. Bir kullanıcı tarafından oluşturulan çerez yalnızca kendisi tarafından görülebilir. Diğer kullanıcılar değerini göremez. En internet tarayıcıları çerezleri, üçüncü taraf çerezlerini veya her ikisini de devre dışı bırakma seçeneklerine sahip olursunuz.

Çerezleri neden ve ne zaman kullanmalıyım?

HTTP durum bilgisi olmayan bir protokoldür; Çerezler, kullanıcının bilgisayarında saklanan küçük dosyaları kullanarak uygulamanın durumunu izlememize olanak tanır. Çerezlerin saklandığı yol tarayıcıya bağlıdır. Internet Explorer bunları genellikle Temporal Internet Files klasöründe saklar.

Kullanıcı deneyimini kişiselleştirme: Bu, kullanıcıların tercihlerini seçmelerine izin verilerek elde edilir. Takip eden sayfa istekleri, çerezlerde ayarlanan tercihlere göre kişiselleştirilir. Bir kullanıcı tarafından ziyaret edilen sayfaların izlenmesi.

PHP ile Çerez Oluşturma

Şimdi çerez oluşturmak için gereken temel sözdizimini inceleyelim.

<?php

setcookie(cookie_name, cookie_value, [expiry_time], [cookie_path], [domain], [secure], [httponly]);

?>
  • PHP'de setcookie işlev bir çerez oluşturmak için kullanılır. “Çerez_adı”, çerezin tanımlayıcısını temsil eder; bu, sunucunun, çerezin değerini $_COOKIE dizisinden alması gerektiğinde sunucu için gerekli olan tanımlayıcıdır. Bu ad zorunludur.
  • “Cookie_value” çerezin içeriğini belirtir ve aynı zamanda gereklidir.
  • "[expiry_time]" parametresi isteğe bağlıdır ve çerezin ömrünü 1 saat içinde sona erecek şekilde ayarlamak gibi, belirleyecek şekilde ayarlanabilir. Bu, PHP time() işlevine saniyeler eklenerek veya çıkarılarak yapılır; örneğin, 3600 saati ayarlamak için time() + 1.
  • “[cookie_path]”, çerezin erişilebilir olduğu sunucu yolunu belirleyen isteğe bağlı başka bir parametredir. Eğik çizgi "/" kullanılması, çerezin alan adının tamamında mevcut olduğunu belirtirken, alt dizinlerin belirtilmesi bu alt alan adlarına erişimi kısıtlar.
  • Yine isteğe bağlı olan “[domain]” parametresi, çereze nereden erişilebileceğini belirler. Örneğin, bunu şu şekilde ayarlamak www.cookiedomain.com etki alanının tamamında kullanılabilir hale getirirken, www.sub.cookiedomain.com onu söz konusu alt alan adı ve onun alt alt alan adlarıyla sınırlandırır. Unutmayın, bir alt alan adının, alan adının toplam uzunluğu 253 karakteri geçmediği sürece kendi alt alan adlarına da sahip olabileceğini unutmayın.
  • “[Secure]” parametresi isteğe bağlıdır ve varsayılan ayarı false'tur. Çerezin HTTPS (eğer doğruysa) veya HTTP (yanlışsa) üzerinden mi iletilmesi gerektiğini belirtir.
  • “[Httponly]” ayarı da isteğe bağlıdır. True olarak ayarlandığında, çereze aşağıdakiler gibi istemci tarafı kodlama dilleri tarafından erişilemez: JavaSenaryo .

Not: Herhangi bir HTML etiketinin çıktısı alınmadan önce PHP setcookie işlevi çağrılmalıdır.

Çerezlerle ilgili pratik bir örneği ele alalım.

Bu durumda, kullanıcı adını on saniye sonra sona erecek bir çerez setinde saklayan basit bir program geliştireceğiz.

Aşağıdaki “cookies.php” kodu bunun nasıl uygulanacağını göstermektedir.

<?php
     setcookie("user_name", "Guru99", time() + 60,'/'); // expires after 60 seconds
     echo 'the cookie has been set for 60 seconds';
?>
Çıktı:
the cookie has been set for 60 seconds

Çerezlerin Avantajları

Deneyimlerime göre, işte faydaları kurabiye:

  • Lezzet keşfinde sürpriz unsurunu güçlendirir.
  • Modern markalama için ideal, minimalist bir estetik sunar.
  • Ambalaj karmaşasını azaltır, dikkati ürüne odaklar.
  • İçerik tercihlerine veya marka algısına dayalı önyargıyı ortadan kaldırır.
  • Önyargılardan uzak bir şekilde tadımı teşvik eder ve tarafsız geri bildirimlere yol açar.
  • Ambalajlama için baskı maliyetlerini potansiyel olarak azaltır.
  • Etiketleme yasalarının daha az katı olduğu pazarlarda mevzuata uygunluğu kolaylaştırır.

Cookie'nin Dezavantajları

Gördüğüm kadarıyla çerezlerin dezavantajları bunlar.

  • Müşteriler alerjenleri veya diyet kısıtlamalarını tanımlayamıyor.
  • Sağlık bilincine sahip tüketiciler için önemli olan beslenme bilgisi eksik.
  • Benzersiz veya birinci sınıf içerikleri öne çıkarma fırsatını kaçırır.
  • Raflardaki benzer ürünler arasında karışıklığa neden olabilir.
  • Marka bilinirliğini ve sadakat oluşumunu engeller.
  • Bilinçli tüketici karar verme becerisini azaltır.
  • Bu, katı etiketleme yasalarına sahip bölgelerde yasal sorunlara yol açabilir.

Oturum ve Çerez: Aralarındaki Fark

Uygulamamda gözlemlediğim bir oturum ile çerez arasında önemli farklar şunlardır:

Oturum ve Çerez Karşılaştırması
Oturum ve Çerez Karşılaştırması

oturum
kurabiye

Oturumlar, kullanıcı bilgilerini içeren sunucu tarafı dosyalarıdır

Çerezler, kullanıcı bilgilerini içeren istemci tarafı dosyalardır

Kullanıcı tarayıcısını kapattığında oturum sona erer

Çerez, belirlediğiniz kullanım ömrüne bağlı olarak sona erer

In PHP, $_SESSION'ı kullanmadan önce session_start(); yazmalısınız. Diğer diller için de aynı şey geçerlidir

Çerez yerel makinenizde saklandığı için başlatmanıza gerek yoktur.

Bir oturumda istediğiniz kadar veri depolayabilirsiniz. Ulaşabileceğiniz tek sınır, bir komut dosyasının aynı anda tüketebileceği maksimum bellektir; bu, varsayılan olarak 128 MB'tır.

Resmi maksimum çerez boyutu 4KB'dir

Bir oturum Çerez'e bağlıdır

Bir çerez Oturuma bağlı değildir

Session_destroy() kayıtlı tüm verileri yok etmek veya bazılarını iptal etmek için kullanılır

unsetcookie() adında bir işlev yok

Sonuç

Veri güvenliği ve kapasite gereksinimlerinin çerezlerin sunabileceğini aştığı oturumları kullanmanızı öneririm. Bununla birlikte, çerezler kullanım kolaylığı ve hafif, kalıcı kullanıcı durumu izleme uygulaması açısından rakipsizdir.