Microsoft Autopilot Manager ile Modern Cihaz Yönetiminde Verimlilik
Bu güçlü araç, cihaz yönetimini kolaylaştırarak hem IT ekiplerinin hem de...
 
        Bir web sitesine giriş yaptığında seni “tanıyan” sistemin nasıl çalıştığını hiç merak ettin mi?
“Bu site beni nasıl hatırlıyor?” veya “Güvenli bir oturum nasıl sağlanıyor?” sorularının cevabı genellikle üç yapının içinde gizlidir: Cookie, Session ve Token.
Bu yazıda, web dünyasının bu üç kahramanını sade bir dille öğrenelim.
Cookie, web sitelerinin tarayıcında küçük veri parçaları saklamasına olanak tanır.
Bu veriler, her istekte otomatik olarak sunucuya gönderilir.
Ne işe yarar?
Giriş yaptıktan sonra seni hatırlamasını sağlar.
Dil veya tema tercihlerini kaydeder.
Siteye tekrar girdiğinde kişiselleştirilmiş bir deneyim sunar.
Avantajları:
Otomatik çalışır, kullanıcıdan ekstra bir işlem gerekmez.
Basit uygulamalarda hızlı bir çözüm sunar.
Dikkat edilmesi gerekenler:
Güvenlik için HttpOnly, Secure ve SameSite ayarlarının yapılması gerekir.
Aksi halde çerezler kötü niyetli kişilerce ele geçirilebilir.
Cookie’ler istemci (tarayıcı) tarafında saklandığı için, hassas bilgileri direkt içinde tutmak önerilmez.
Session, kullanıcıya ait verilerin sunucuda tutulduğu bir oturum yönetim sistemidir.
Tarayıcıda yalnızca bir oturum kimliği (session ID) saklanır.
Nasıl çalışır?
Kullanıcı giriş yaptığında sunucu bir oturum oluşturur.
Bu oturuma özel bir ID üretir.
Tarayıcı, bu ID’yi cookie olarak saklar.
Her istekte bu ID sunucuya gönderilir ve kullanıcı doğrulanır.
Avantajları:
Veriler tarayıcıda değil, sunucuda saklandığı için güvenlidir.
Kullanıcı bilgilerini doğrudan koruma altına alır.
Dezavantajı:
Ölçeklendirme zordur. Birden fazla sunucuda aynı session bilgisini paylaşmak gerekebilir.
Bir e-ticaret sitesinde oturum açtıktan sonra sepetindeki ürünlerin kaybolmamasını sağlayan mekanizma genellikle session’dır.
Token yapısı, özellikle JWT (JSON Web Token) standardıyla hayatımıza girdi.
JWT, kullanıcıya ait bilgileri içeren ve dijital olarak imzalanmış bir veri yapısıdır.
Nasıl çalışır?
Kullanıcı giriş yaptığında sunucu bir JWT üretir.
Bu token içinde kullanıcı bilgileri (örneğin ID, rol, e-posta) şifrelenmiş şekilde bulunur.
Token, istemci tarafında saklanır ve her istekte sunucuya gönderilir.
Avantajları:
“Stateless”tir yani sunucuda oturum bilgisi tutulmaz.
Mikroservis, API ve mobil uygulamalarda mükemmel performans sağlar.
Dikkat edilmesi gerekenler:
Token’ın süresi mutlaka belirlenmelidir (expiry).
Refresh token sistemi kullanılmalıdır.
Doğrulama için imzalama (signature) mekanizması şarttır.
JWT, kimlik doğrulamada esneklik sağlar. Her istekte kullanıcı bilgilerini tekrar sorgulamaya gerek kalmaz.
Bu üç yöntem aynı amaca hizmet eder: kullanıcıyı tanımak ve oturumu yönetmek.
Ancak her birinin güçlü olduğu alan farklıdır:
Klasik web siteleri (örneğin blog, haber sitesi): Cookie + Session
Mobil uygulamalar & Mikroservisler: JWT (Token)
Karma sistemler: Hibrit modeller (örneğin session bilgisini JWT ile taşımak)
🎓 Kısa özet:
Cookie: Tarayıcıda küçük veriler.
Session: Sunucuda güvenli oturum.
Token (JWT): Bağımsız ve taşınabilir kimlik doğrulama.
Kimlik doğrulama sadece “giriş yapmak” değildir.
Bu sürecin ardında çalışan cookie, session ve token yapıları; modern web güvenliğinin temel taşlarıdır.
Doğru seçimi yapmak hem kullanıcı deneyimini hem de sistemin güvenliğini doğrudan etkiler.
Basit web siteleri için Cookie + Session yeterlidir.
Geniş ölçekli API sistemleri için JWT çok daha uygundur.
Harika 👍
İşte aynı içeriğin developer rehberi formatına dönüştürülmüş, öğretici, sade ama teknik olarak doyurucu versiyonu:
Modern web geliştirmede kimlik doğrulama (authentication), kullanıcı güvenliğinin ve sistem bütünlüğünün en kritik noktalarından biridir.
Bu süreçte en sık karşımıza çıkan üç temel yapı vardır: Cookie, Session ve Token (JWT).
Bu rehberde, her birinin nasıl çalıştığını, hangi durumda hangisini kullanman gerektiğini ve aralarındaki farkları adım adım inceleyeceğiz.
Cookie, web sunucusunun kullanıcının tarayıcısında küçük veri parçaları saklamasına izin veren mekanizmadır.
Tarayıcı, her istekle birlikte bu verileri otomatik olarak sunucuya gönderir.
Sunucu, istemciye bir cookie gönderir.
Tarayıcı bu cookie’yi saklar.
Aynı alan adına yapılan her istekte cookie otomatik olarak sunucuya eklenir.
Kullanıcı oturumu veya tercihleri kolayca hatırlanabilir.
Basit kimlik doğrulama işlemleri için uygundur.
Cookie’ler tarayıcıda saklandığı için manipülasyona açıktır.
Güvenlik için şu parametreler mutlaka kullanılmalıdır:
HttpOnly: JavaScript erişimini engeller.
Secure: Sadece HTTPS üzerinden gönderilmesini sağlar.
SameSite: Cross-Site Request Forgery (CSRF) riskini azaltır.
Kullanıcının dil tercihini veya oturum ID’sini saklamak gibi basit senaryolarda idealdir.
Session, kullanıcının kimlik bilgilerini sunucu tarafında saklayan bir yapıdır.
Tarayıcıda yalnızca oturumu temsil eden bir session ID bulunur.
Kullanıcı giriş yaptığında sunucu bir session oluşturur.
Sunucu bu session’a bir ID atar.
Bu ID, tarayıcıya cookie olarak gönderilir.
Tarayıcı her istekte bu ID’yi sunucuya yollar, sunucu ilgili oturumu bulur.
Kullanıcı bilgileri sunucuda saklandığı için güvenlidir.
Oturum verileri kolayca yönetilebilir ve güncellenebilir.
Ölçeklendirme (load balancing) durumunda session verisinin paylaşılması gerekir (örneğin Redis veya Memcached ile).
Her kullanıcı için sunucu belleğinde alan ayrıldığı için yoğun trafikte yük oluşturabilir.
Klasik web uygulamaları, CMS yapıları (ör. WordPress, Laravel admin panelleri) gibi “oturum tabanlı” sistemler için uygundur.
JWT (JSON Web Token), kullanıcı bilgilerini içeren, imzalanmış (ve isteğe bağlı olarak şifrelenmiş) bir JSON nesnesidir.
Sunucu, oturum bilgisini saklamak zorunda kalmaz. Her istekte token, kimliği doğrulamak için yeterlidir.
Kullanıcı giriş yaptığında sunucu bir JWT üretir.
Token, kullanıcı kimliği ve izin bilgilerini içerir.
Token, tarayıcıda veya mobil uygulamada saklanır (genellikle localStorage veya Authorization header’ında).
Her API isteğinde token sunucuya gönderilir.
Sunucu, token’ın imzasını doğrular ve kimliği tanır.
“Stateless” yapı sayesinde yüksek performans sağlar.
Mikroservis ve API mimarileri için mükemmel uyumludur.
Sunucu tarafında oturum bilgisi saklanmaz, bu da ölçeklenebilirliği artırır.
Token mutlaka süreli (expiry) olmalıdır.
Yenileme için refresh token mekanizması kullanılmalıdır.
Güvenlik için public/private key ile imzalama tercih edilmelidir.
Mobil uygulamalar, SPA’lar (React, Vue, Angular) ve mikroservis tabanlı sistemlerde idealdir.
| Uygulama Türü | Önerilen Yöntem | Neden | 
|---|---|---|
| Klasik web sitesi (PHP, ASP, Django) | Cookie + Session | Basit, güvenli ve sunucu kontrollü | 
| Mobil / SPA uygulamaları | JWT | Stateless, performanslı | 
| Mikroservis yapıları | JWT | Servisler arası kimlik paylaşımı kolay | 
| Karma sistemler | Hybrid (Session + Token) | Esnek yapı, farklı istemcilere uygun | 
| Yapı | Saklama Yeri | Güvenlik | Performans | Uygun Olduğu Senaryolar | 
|---|---|---|---|---|
| Cookie | Tarayıcı | Düşük (ek ayarlarla artırılabilir) | Yüksek | Basit tercih saklama | 
| Session | Sunucu | Yüksek | Orta | Web oturumları | 
| JWT | İstemci | Orta (doğru imzalama ile yüksek) | Yüksek | API & Mobil uygulamalar | 
Cookie veya Session kullanıyorsan mutlaka CSRF koruması ekle.
JWT kullanıyorsan token sürelerini iyi ayarla ve refresh mekanizmasını unutma.
API geliştiriyorsan Authorization: Bearer  standardını uygula.
Kullanıcı verilerini asla tarayıcıda düz metin olarak saklama.
Kimlik doğrulama stratejisi, projenin yapısına göre değişir.
Eğer tek sunuculu bir web projesi yapıyorsan Session tabanlı,
mikroservis veya mobil odaklı bir sistem geliştiriyorsan JWT tabanlı yapı senin için daha doğru olacaktır.
Doğru yapı seçimi:
Güvenliği artırır,
Performansı optimize eder,
Ve sistem mimarisini uzun vadede sürdürülebilir kılar.
🔐 Güvenli bir sistem, sadece güçlü parolalarla değil, doğru kimlik doğrulama stratejisiyle başlar.