Middle
Web uygulamalarında oturumun çalışma mekanizması nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Oturumun çalışma mekanizması, temel olarak stateless olan HTTP istekleri arasında kullanıcının durumunu korumaya dayanır. Bu, benzersiz bir oturum tanımlayıcısı kullanılarak sağlanır.
Ana adımlar:
- Kullanıcının ilk isteği: Kullanıcı, web sunucusuna bir istek gönderir.
- Oturum oluşturma: Eğer istek, oturum tanımlayıcısı olmayan bilinmeyen bir kullanıcıdan geliyorsa, sunucu kendi tarafında (bellekte, veritabanında, dosya sisteminde) yeni bir oturum oluşturur ve benzersiz bir oturum tanımlayıcısı üretir.
- Tanımlayıcıyı istemciye gönderme: Sunucu, bu oturum tanımlayıcısını çerez (
Set-Cookie: SESSIONID=xyz; path=/) şeklinde gönderir. - İstemcide saklama: Tarayıcı, bu çerezi kaydeder ve tüm sonraki isteklerde aynı alan adına (
Cookie: SESSIONID=xyz) gönderir. - Sunucuda tanımlama: Her takip eden istekte, oturum tanımlayıcısı içeren çerez alındığında, sunucu bu tanımlayıcıyı kullanarak ilgili oturumu bulur ve kullanıcının kaydedilen verilerini alır.
- Oturumu sonlandırma: Oturum, inaktiflik süresi, kullanıcının açık çıkışı (logout) veya tarayıcı kapatılmasıyla sona erebilir (çerezdeki oturum süresi dolmamışsa).
Yetkilendirme bilgilerini saklamak için oturum kullanımı örneği:
// Java Servlets örneği
HttpSession session = request.getSession(); // Oturumu al veya oluştur
// Kullanıcının yetkili olup olmadığını kontrol et
if (session.getAttribute("loggedInUser") == null) {
// Kullanıcı yetkili değil, giriş sayfasına yönlendir
response.sendRedirect("/login");
} else {
// Kullanıcı yetkili, verileri al
User user = (User) session.getAttribute("loggedInUser");
// ... kullanıcı verileriyle çalışma
}
Oturum depolama:
- Sunucunun belleğinde (küçük uygulamalar için uygundur).
- Sunucunun dosya sisteminde.
- Veritabanında (klasik ve ölçeklenebilir seçenek).
- Dağıtılmış önbelleklerde (Redis, Memcached) çoklu sunuculara ölçeklendirme için.
Güvenlik:
- "secure" ve "HttpOnly" bayraklarının kullanımı.
- Başarılı kimlik doğrulama sonrası oturum ID'sinin yeniden oluşturulması.
- Oturum için uygun bir zaman aşımı ayarlanması.
- Oturum kaçırma (Session Hijacking) saldırılarına karşı koruma.