
Müşterileriniz şikâyet ediyor: sepete ürün ekliyorlar, bir sonraki sayfada sepet boş. Ya da giriş yapıyorlar, birkaç tıklama sonra tekrar giriş ekranıyla karşılaşıyorlar.
Bu, oturum yönetimi sorunudur ve hosting ortamında birkaç farklı nedenden kaynaklanabilir. Bu yazı, teşhis ve çözümü anlatıyor.
Oturum Nasıl Çalışır?
Mekanizma basittir ve nerede bozulabileceğini anlamak için bilinmelidir:
- Kullanıcı siteye girer, sunucu benzersiz bir oturum kimliği üretir
- Bu kimlik kullanıcının tarayıcısına çerez olarak yazılır
- Oturum verisi sunucuda bir dosyada veya veritabanında saklanır
- Her istekte tarayıcı kimliği gönderir, sunucu ilgili veriyi bulur
Bu zincirde iki ayrı taraf vardır: tarayıcıdaki çerez ve sunucudaki veri. Oturum kaybı, ikisinden birinin kopmasıyla oluşur ve hangi tarafta olduğunu bulmak çözümün yarısıdır.
Yaygın Nedenler
| Neden | Belirti | Taraf |
|---|---|---|
| Oturum dosyaları temizleniyor | Belirli süre sonra çıkış | Sunucu |
| Disk dolu, dosya yazılamıyor | Hiç oturum tutulmuyor | Sunucu |
| www'lu ve www'suz karışıyor | Bazı sayfalarda çıkış | Çerez |
| HTTP ve HTTPS karışıyor | Sayfa geçişlerinde çıkış | Çerez |
| Önbellek oturumu bozuyor | Başkasının oturumu görünüyor | Ara katman |
| Yazma izni yok | Oturum hiç başlamıyor | Sunucu |
Beşinci satır en tehlikelisidir: yanlış yapılandırılmış bir önbellek katmanı, oturum bilgisi içeren sayfaları önbelleğe alıp bir kullanıcının oturumunu başka bir kullanıcıya gösterebilir. Bu, ciddi bir güvenlik sorunudur ve giriş gerektiren sayfaların önbelleğe alınmamasıyla önlenir.
Adres Tutarsızlığı: En Sık Neden
Çerezler alan adına bağlıdır. Siteniz hem www'lu hem www'suz erişilebiliyorsa, tarayıcı bunları farklı adresler olarak görebilir ve çerez taşınmaz.
Aynı sorun HTTP ve HTTPS arasında da yaşanır: güvenli olarak işaretlenmiş bir çerez, güvensiz bağlantıda gönderilmez.
Kullanıcı deneyimi şöyle olur: giriş yaparlar, bir bağlantıya tıklarlar, o bağlantı farklı bir varyanta gider ve oturum kaybolur.
Çözüm net ve kalıcıdır:
- Tek bir kanonik adres belirleyin. www'lu veya www'suz — birini seçin.
- Diğerini kalıcı olarak yönlendirin. Yapılandırma dosyanızda.
- HTTPS'i zorunlu kılın. Tüm HTTP istekleri yönlensin.
- İç bağlantıları göreli yazın. Sabit tam adres kullanmayın.
Bu düzenleme, oturum sorunlarının önemli bir kısmını tek adımda çözer ve ayrıca arama motoru tarafında da fayda sağlar.
Oturum Dosyalarının Ömrü
Oturum verisi sunucuda dosya olarak saklanıyorsa, bu dosyalar bir temizlik mekanizmasıyla silinir. Paylaşımlı hosting ortamlarında bu mekanizma bazen beklenmedik davranır.
Tipik sorun: sistem, oturum dosyalarını sizin belirlediğiniz süreden daha erken temizler. Kullanıcılarınız ayarladığınız sürenin çok öncesinde çıkış yapmış olur.
Çözüm seçenekleri:
- Kendi oturum dizininizi tanımlayın. Ortak dizin yerine hesabınıza özel bir klasör.
- Oturumları veritabanında saklayın. Dosya temizliğinden etkilenmez ve süre kontrolü tamamen sizde olur.
- Ömür ayarını açıkça belirtin. Hem oturum ömrü hem çerez ömrü tanımlanmalı.
İkinci seçenek, oturum sorunlarının çoğunu kalıcı olarak çözer ve ek bir fayda sağlar: kullanıcıların hangi cihazlardan giriş yaptığını görebilir, uzaktan oturum kapatma özelliği sunabilirsiniz.
Çerez Ayarları
Oturum çerezinin ayarları hem işlevi hem güvenliği belirler:
- Ömür. Tarayıcı kapanınca silinsin mi, belirli süre kalsın mı?
- Alan adı kapsamı. Alt alan adlarını kapsasın mı?
- Yalnızca güvenli bağlantı. HTTPS zorunluysa açık olmalı.
- Betik erişimi kısıtı. Çerezin JavaScript ile okunmasını engeller — güvenlik açısından önemlidir.
- Site dışı gönderim politikası. Çerezin başka sitelerden gelen isteklerde gönderilip gönderilmeyeceği.
Son madde son yıllarda önem kazanmıştır: tarayıcılar bu konuda giderek katılaşıyor ve yanlış ayarlanmış bir politika, ödeme sağlayıcısından dönüşte oturumun kaybolmasına yol açabilir. Ödeme akışınız bir dış siteye gidip geri dönüyorsa bu ayarı mutlaka kontrol edin.
Teşhis Adımları
- Sorun tüm kullanıcılarda mı, bazılarında mı? Hepsindeyse sunucu tarafı, bazılarındaysa çerez veya tarayıcı tarafı.
- Hangi sayfa geçişinde oluyor? Belirli bir sayfada oluyorsa o sayfanın adresini kontrol edin.
- Tarayıcı geliştirici araçlarından çereze bakın. Çerez var mı, ömrü ne, kapsamı doğru mu?
- Oturum dizinini kontrol edin. Dosyalar oluşuyor mu, yazma izni var mı?
- Disk doluluğuna bakın. Dolu bir diskte oturum dosyası yazılamaz.
- Önbellek katmanını kontrol edin. Giriş gerektiren sayfalar önbelleğe alınıyor mu?
Birinci madde aramayı hemen yarıya indirir ve ilk yapılması gereken kontroldür.
Ölçek Büyüdüğünde
Trafik arttıkça oturum yönetimi ek zorluklar üretir:
- Dosya sayısı sınırı. Binlerce oturum dosyası, hesabınızın dosya sayısı kotasını doldurabilir.
- Disk erişim yükü. Her istekte dosya okuma-yazma, yoğun trafikte darboğaz üretir.
- Temizlik maliyeti. Eski oturumların silinmesi kaynak tüketir.
Bu noktada oturumları veritabanına veya bellekte çalışan bir önbellek katmanına taşımak gerekir. Bellek tabanlı çözümler en hızlısıdır ancak paylaşımlı hostingde genellikle mevcut değildir — bu, hosting paketinizin sınırına geldiğinizin işaretlerinden biridir.
Sonuç
Oturum kaybında teşhisin ilk adımı basittir: sorun tüm kullanıcılarda mı yoksa bazılarında mı? Hepsindeyse sunucu tarafına, bazılarındaysa çerez tarafına bakın. En sık neden ise adres tutarsızlığıdır — www'lu ve www'suz ya da HTTP ve HTTPS varyantlarının karışması. Tek bir kanonik adres belirleyip diğerlerini kalıcı yönlendirmek, sorunların önemli kısmını tek adımda çözer. Kalıcı çözüm için oturumları dosya yerine veritabanında saklamayı değerlendirin.
Sıkça Sorulan Sorular (SSS)
Kullanıcılar neden sürekli çıkış yapıyor?
En sık neden adres tutarsızlığıdır: siteniz hem www'lu hem www'suz erişilebiliyorsa tarayıcı bunları farklı adresler olarak görür ve çerez taşınmaz. Aynı sorun HTTP ile HTTPS arasında da yaşanır. Tek bir kanonik adres belirleyip diğerlerini yönlendirin.
Oturum süresini uzattım ama yine erken çıkıyorlar?
Paylaşımlı hostingde oturum dosyaları ortak bir temizlik mekanizmasıyla silinir ve bu, sizin belirlediğiniz süreden erken çalışabilir. Hesabınıza özel bir oturum dizini tanımlayın veya oturumları veritabanında saklayın.
Kullanıcılar başkasının oturumunu görüyor, nasıl olur?
Yanlış yapılandırılmış bir önbellek katmanı, oturum bilgisi içeren sayfaları önbelleğe almış demektir. Bu ciddi bir güvenlik sorunudur. Giriş gerektiren tüm sayfaların önbelleğe alınmadığından emin olun.
Ödeme sayfasından dönünce oturum kayboluyor?
Çerezin site dışı gönderim politikası muhtemelen yanlış ayarlanmış. Tarayıcılar bu konuda giderek katılaştığı için, dış bir siteye gidip geri dönen akışlarda çerez gönderilmeyebilir. Bu ayarı ödeme akışınıza uygun şekilde yapılandırın.