Sobes.tech
Junior

Tarayıcıda nasıl çerez ayarlanır?

sobes.tech yapay zeka

AI'dan gelen yanıt

Tarayıcıda çerezleri birkaç farklı yöntemle ayarlayabilirsiniz.

  1. Sunucudan Set-Cookie HTTP başlığı aracılığıyla. Bu, çerezleri ayarlamanın ana yöntemidir ve sunucu tarafında gerçekleşir. Sunucu, tarayıcıya belirli bir anahtar-değer çifti saklamasını talimatı veren Set-Cookie başlığını gönderir.

    Sunucudan gelen HTTP yanıtı örneği:

    HTTP/1.1 200 OK
    Content-Type: text/html
    Set-Cookie: username=johndoe; Expires=Thu, 21 Dec 2023 12:00:00 GMT; Path=/; Secure; HttpOnly
    Set-Cookie: settings=theme=dark&lang=en; Path=/
    

    Set-Cookie başlığı parametreleri:

    • name=value: Çerez adı ve değeri. Zorunlu parametre.
    • Expires=<date>: Çerezin sona erdiği tarih ve saat. Belirtilmezse, çerez oturum çerezi olur ve tarayıcı kapatıldığında silinir. Tarih formatı - RFC 1123.
    • Max-Age=<seconds>: Çerezin maksimum yaşam süresi saniye cinsinden. Expires üzerinde önceliklidir.
    • Domain=<domain>: Çerezin erişilebilir olduğu alan adı. Varsayılan olarak, mevcut alan adı (alt alan adları hariç).
    • Path=<path>: Sunucudaki çerezin erişilebilir olduğu yol. Varsayılan olarak kök yol /.
    • Secure: Çerezin yalnızca HTTPS üzerinden gönderilmesi gerektiğini belirten bayrak.
    • HttpOnly: Çerezin JavaScript tarafından document.cookie aracılığıyla erişilemez olduğunu belirten bayrak. XSS saldırılarına karşı korur.
    • SameSite=<mode>: Çerezin çapraz siteli isteklerde gönderilmesini kontrol eder. Olası değerler: Strict, Lax (varsayılan), None.
  2. İstemci tarafında JavaScript ile. document.cookie nesnesi kullanılarak çerezler okunabilir, yazılabilir ve silinebilir.

    Çerez yazma:

    // Basit bir çerez ayarlama
    document.cookie = "username=johndoe";
    
    // Expires, path, secure ve SameSite=Lax ile çerez ayarlama
    const expiryDate = new Date();
    expiryDate.setTime(expiryDate.getTime() + (30 * 24 * 60 * 60 * 1000)); // 30 gün
    document.cookie = `token=abcdef123456; expires=${expiryDate.toUTCString()}; path=/; secure; SameSite=Lax`;
    

    Çerezleri okuma:

    // document.cookie, erişilebilir tüm çerezleri "key1=value1; key2=value2; ..." formatında döndürür
    console.log(document.cookie);
    

    Çerez silme: Çerezi silmek için, onu geçmiş bir tarihe ayarlamak gerekir.

    document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/"; // expires geçmiş bir tarihe ayarla
    

    Silme işleminde, oluşturulurken kullanılan path ve domain parametrelerini de belirtmek önemlidir. SameSite değeri de doğru silme için uyumlu olmalıdır.

  3. Üçüncü taraf JavaScript kütüphaneleri ile. Çerezlerle çalışma işlemini kolaylaştıran kütüphaneler mevcuttur (örneğin, js-cookie). Bu kütüphaneler, çerezleri ayarlama, alma ve silme işlemleri için daha kullanışlı API'ler sağlar.

    js-cookie ile örnek:

    // Kütüphaneyi dahil et
    // <script src="https://cdn.jsdelivr.net/npm/js-cookie@3.0.1/dist/js.cookie.min.js"></script>
    
    // Çerez ayarlama
    Cookies.set('username', 'johndoe');
    
    // Seçeneklerle çerez ayarlama
    Cookies.set('token', 'abcdef123456', { expires: 30, path: '/', secure: true, sameSite: 'Lax' }); // expires gün cinsindendir
    
    // Çerezleri alma
    const username = Cookies.get('username'); // 'johndoe' veya undefined döner
    const allCookies = Cookies.get(); // Tüm çerezleri içeren nesne döner
    
    // Çerezleri silme
    Cookies.remove('username');
    Cookies.remove('token', { path: '/' }); // Oluşturulurken kullanılan path'i belirtin