# JWT vs Session

Adres: https://softwaredictionary.org/tr/karsilastirma/jwt-vs-session
Son güncelleme: 2026-09-30

Kısaca: JWT, kullanıcının kimliğini içinde taşıyan imzalı bir token'dır, sorgusuz doğrulanır; session ise oturumu sunucuda tutar, istemciye rastgele bir kimlik verir.

## JWT ile oturum (session) tabanlı kimlik doğrulama arasındaki fark nedir?

JSON Web Token (JWT), üç parçalı kompakt ve imzalı bir metindir: bir başlık, kullanıcı kimliği ve son kullanma zamanı gibi claim'lerden oluşan bir payload ve bir imza. Oturum tabanlı kimlik doğrulamada ise sunucu girişten sonra bir oturum kaydı oluşturur, onu bellekte, bir veritabanında ya da bir önbellekte tutar ve tarayıcıya, genellikle bir cookie içinde, rastgele bir oturum kimliği gönderir.

Asıl fark, durumun nerede yaşadığıdır. Oturumlarda gerçeği sunucu tutar, bu yüzden her istek bir sorgu gerektirir; ama birini oturumdan çıkarmak ya da izinlerini değiştirmek hemen etkili olur. JWT kendi içinde eksiksizdir: doğrulama anahtarına sahip herhangi bir sunucu ona ortak bir depolama olmadan güvenebilir; bu dağıtık sistemlere ve API'lere uygundur, ama çalınmış ya da güncelliğini yitirmiş bir token süresi dolana kadar geçerli kalır.

Sık birleştirilirler. Birçok sistem, kısa ömürlü JWT erişim token'larını sunucuda saklanan ve iptal edilebilen bir yenileme (refresh) token'ıyla eşleştirir; bir JWT de tıpkı bir oturum kimliği gibi bir `HttpOnly` cookie içinde durabilir. Token biçimi ile saklandığı yer ayrı kararlardır.

Sık yapılan bir yanlış, JWT'lerin şifreli olduğu düşüncesidir. Standart imzalı bir JWT yalnızca Base64URL ile kodlanmıştır, bu yüzden payload'ını herkes okuyabilir; imza yalnızca değiştirilmesini önler. Bir JWT'nin içine asla gizli bilgi koymayın ve onun iyi işletilen bir oturum deposundan kendiliğinden daha güvenli ya da daha ölçeklenebilir olduğunu varsaymayın.

| Özellik | JWT | Oturum |
| --- | --- | --- |
| Durumun yaşadığı yer | Token'ın kendisinde, istemcide tutulur | Sunucuda; bellekte, bir veritabanında ya da bir önbellekte |
| İstemcinin tuttuğu | Kullanıcı kimliği ve son kullanma gibi claim'ler içeren imzalı bir token | Rastgele, anlamsız bir oturum kimliği |
| Doğrulama | İmza bir anahtarla denetlenir; sorgu yok | Oturum kimliği oturum deposunda aranır |
| Çıkış ve iptal | Süre dolmadan zor; kısa ömürler ya da bir engelleme listesi gerekir | Anında: oturum sunucuda silinir |
| Ölçekleme | Anahtara sahip her sunucu doğrulayabilir | Sunucuların ortak bir oturum deposuna ihtiyacı var |
| Boyut | Yüzlerce bayt ya da daha fazlası, her istekle gönderilir | Birkaç düzine baytlık küçük bir kimlik |
| En uygun olduğu yer | API'ler, mobil uygulamalar, mikroservisler ve tek oturum açma (SSO) | Sunucuda oluşturulan sayfalara sahip geleneksel web uygulamaları |

## JWT şu durumlarda doğru seçim

- Birçok servisin, ortak bir oturum veritabanı paylaşmadan kullanıcıları doğrulaması gerekiyor.
- İstemciler yalnızca tarayıcılar değil, mobil uygulamalar ya da üçüncü taraf API tüketicileri de.
- Tek oturum açma ya da token üreten bir kimlik sağlayıcı kullanıyorsunuz.

## Oturum şu durumlarda doğru seçim

- Anında çıkışa ya da izinlerde hemen etkili değişikliklere ihtiyacınız var.
- Uygulamanız çoğunlukla tek bir arka ucun sunduğu tarayıcı tabanlı bir site.
- HttpOnly bir oturum cookie'siyle en basit güvenli kurulumu istiyorsunuz.

## Sık sorulan sorular

**JWT'ler oturumlardan daha mı güvenli?**

Doğası gereği değil. İyi uygulandığında ikisi de güvenlidir; oturumları iptal etmek daha kolaydır, JWT'leri ise süre dolmadan geçersiz kılmak daha zordur ve kısa ömürlü olmalıdır.

**Bir JWT'yi tarayıcıda nerede saklamalıyım?**

`HttpOnly`, `Secure` bir cookie onu JavaScript'in ve XSS saldırılarının erişiminden uzak tutar, ama o zaman CSRF korumasına ihtiyacınız olur. Token'ları `localStorage`'da saklamak daha basittir, ama onları sayfadaki her betiğe açık bırakır.

**JWT ile bir kullanıcının oturumu kapatılabilir mi?**

Doğrudan değil; çünkü token süresi dolana kadar geçerli kalır. Yaygın çözümler kısa geçerlilik süreleri, iptal edilebilir yenileme token'ları ve iptal edilen token kimliklerinden oluşan sunucu tarafı bir engelleme listesidir.

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
