Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 17168|Yanıt: 1

[Kaynak] Session'ın yaşam döngüsü

[Bağlantıyı kopyala]
Yayınlandı 19.04.2015 19:44:59 | | |
Daha önce çalışırken buna pek dikkat etmezdim ama bugün tekrar dönüp seansın yaşam döngüsünü dikkatlice inceledim.
Oturumlar sunucu tarafında saklanır ve genellikle sunucunun belleğinde (yüksek hızlı erişim için) bulunmasını önlemek için Sessinon kullanıcının sunucuya ilk erişimini oluşturur.Yalnızca JSP, Servlet ve diğer programlara erişmek bir Oturum oluşturur, sadece HTML ve IMAGE gibi statik kaynaklara erişmek ise Oturum oluşturmaz.
  Bir oturum ne zaman sona erer?
1. Sunucu, uzun süredir etkin olmayan sunucu belleğinden oturumu temizler ve oturum geçersiz olur. Tomcat'te bir oturumun varsayılan son kullanma süresi 20 dakikadır.
2. Oturumun geçersiz etme yöntemini çağırın.
  Tarayıcılar için oturum gereksinimleri:
 Oturum sunucuda saklansa ve istemci için şeffaf olsa da, normal işleyişi yine de istemcinin tarayıcısının desteğini gerektirir. Bunun nedeni, Session'ın tanımlayıcı olarak çerezleri kullanması gerektiğidir. HTTP protokolü durumsuzdur ve oturum HTTP bağlantısı tarafından aynı müşteri olup olmadığını belirlemek için değerlendirilemez, bu nedenle sunucu, oturumun kimliğinin değerine sahip JSESSIONID adlı bir çerez gönderir (yani HttpSession.getId()'nin geri dönüş değeri). Session, aynı kullanıcı olup olmadığını belirlemek için çerezi kullanır.

Bu çerez sunucu tarafından otomatik olarak oluşturulur ve maxAge özniteliği genellikle -1'dir; bu da yalnızca mevcut tarayıcıda geçerli olduğu, tarayıcı pencereleri arasında paylaşılmadığı ve tarayıcı kapandığında geçerli olmayacağı anlamına gelir. Bu nedenle, aynı makinedeki iki tarayıcı penceresi sunucuya eriştiğinde, iki farklı oturum oluşturulur. Tarayıcı penceresinde bağlantılar, scriptler vb. ile açılan yeni pencereler hariç (yani masaüstü tarayıcı simgelerine çift tıklayarak açılan pencereler değil). Bu alt pencereler, ebeveyn penceresinin çerezini ve dolayısıyla bir oturumu paylaşır.

Not: Yeni Oturumlar, alt pencereler hariç yeni açılan tarayıcı pencerelerinde oluşturulur. Alt pencere, ebeveyn penceresinin oturumunu paylaşır. Örneğin, bir bağlantıya sağ tıklayıp açılan kısayol menüsünde "Yeni pencerede aç" seçeneğini seçtiğinizde, alt pencere ana pencerenin Oturum bölümüne erişebilir.

Ya istemci tarayıcı çerezleri devre dışı bırakırsa veya çerezleri desteklemezse? Örneğin, mobil tarayıcıların büyük çoğunluğu çerezleri desteklemiyor. Java Web başka bir çözüm sunar: URL adresi yeniden yazma.
URL adresi yeniden yazma, çerezleri desteklemeyen istemciler için bir çözümdür. URL adresi yeniden yazma prensibi, kullanıcının oturumunun id bilgilerini URL adresine yeniden yazmaktır. Sunucu, yeniden yazılmış URL'yi ayrıştırarak Oturum kimliğini elde edebilir. Bu şekilde, istemci çerezleri desteklemese bile, oturum kullanıcı durumunu kaydetmek için kullanılabilir. HttpServletResponse sınıfı, URL adresinin yeniden yazılmasını uygulamak için encodeURL (String url) sağlar; bu da istemcinin çerezleri destekleyip desteklemediğini otomatik olarak belirler. İstemci çerezleri destekliyorsa, URL olduğu gibi çıktı alır. İstemci çerezleri desteklemiyorsa, kullanıcı oturumunun kimliği URL'ye yeniden yazılır.
Not: TOMCAT, istemci tarayıcısının çerezleri destekleyip desteklemediğini, bir çerezin istekte olup olmadığına göre belirler. İstemci çerezleri destekleyebilir, ancak ilk istekte hiçbir çerez taşınmadığı için (çünkü bunu yapabilecek çerezler yoktur), yeniden yazılmış URL adresinde yine jsessionid bulunur. Sunucu, ikinci ziyarette tarayıcıda zaten bir çerez yazmıştır, bu yüzden yeniden yazılmış URL adresinde jsessionid olmaz.





Önceki:Tablo sınırını ince bir çizgiye dönüştürmek için HTML hilesi
Önümüzdeki:Performans optimizasyonu ASP.NET özel bir dosya önbelleği oluşturun
Yayınlandı 18.03.2017 16:52:21 |
Çok iyi yazılmış, öğrenin!
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com