Session Nedir?

Session Nedir?

Web siteleri günün her anı ziyaretçiler tarafından ziyaret edilir. İnternet kullanıcılar internette sörf yaparken birçok web sitesine girip çıkarlar. Web sitelerini çeşitli araçlar sayesinde yaşanan deneyimle açısından analiz etmek mümkündür. Bir web sitesinin ana amacı kullanıcıların web sitesine gelmesi, aradıkları bilgileri bulması, uzun süre web sitesinde kalması ve sayfalar arasında dolanmasıdır. Bir etkinliğe ayrılan süre session olarak adlandırılıyor.

Bu süre kullanıcı bilgisayar veya bir cihaz üzerinden web sitesine giriş yaptığında başlar. Web sitesinde bulunduğu süre boyunca devam eder. Kullanıcı web sitesini terk ettiği anda veya oturumu kapattığı anda biter.  Session kullanıcıları izleme, çerezlerini tutma gibi konularda avantaj sağlar. Ayrıca Google Analytics üzerinden de takip edilebilecek bir metriktir.

Google Analytics’te Session Nedir?

Google Analytics’teki bir oturum, kullanıcı bir siteyi ziyaret ettiğinde başlar. Google’ın bir hesabın süresini sona erdirmek için kullandığı iki yöntem vardır:

Google Analytics oturumlarının süresi zaman alabilir.

  • 30 dakikalık ziyaretçi hareketsizliğinden sonra
  • Gece yarısı

Ayrıca, Google Analytics oturumlarının süresi kampanya bazında da dolabilir. Bir kullanıcı siteye bir pazarlama kampanyasından girerse, ayrılır ve ardından başka bir pazarlama kampanyası aracılığıyla geri dönerse.

Çerezler ve Session Nedir?

Çerez, web sitesinin ziyaretçinin web sitesindeki etkinliğini izlemesine yardımcı olmak için ziyaretçinin tarayıcısında saklanan bir web sitesinden gelen küçük bir veri parçasıdır. Oturumlar ve çerezler bazen karıştırılır ve karışıklık yaratır. Daha spesifik olarak, oturum kimlikleri ve çerez kimlikleri karıştırılır. Yakından ilişkili olsalar da, aynı şey değildirler. Bir çerez, genellikle anonim olarak, belirli bir ziyaretçiyi veya belirli bir bilgisayarı tanımlar. Çerezler kimlik doğrulama, site tercihlerini depolama, alışveriş sepetlerini kaydetme ve sunucu oturumu tanımlama için kullanılabilir

Web geliştiricileri, bir siteyi kimlerin ziyaret ettiğini ve daha önce neler yaptığını bilerek, kişiselleştirilmiş bir web deneyimi oluşturmak için sayfaları özelleştirebilir. Örneğin, bir çerez, bir formu doldururken topladığı adınız ve tercihleriniz gibi bilgileri saklayabilir, ardından bu bilgileri bir veya daha fazla web oturumu boyunca ziyaret ettiğiniz sayfaları doldurmak için kullanabilir.

Sunucu günlükleri genellikle bir ziyaretçinin hem oturum kimliğini hem de çerez kimliğini içerir. Bir web oturumu kimliği belirli bir ziyarete özgüdür, bir çerez ise belirli bir ziyaretçiye özgüdür ve bu nedenle (geliştiricilerin umduğu) birden fazla web oturumu boyunca aynı kalır. Geliştiriciler ve analistler, tek bir tanımlama bilgisi kimliğini birden çok oturum kimliğiyle eşleyerek ziyaretçilerin web uygulamalarıyla nasıl etkileşimde bulunduğuna dair daha net bir resim elde edebilir.

Session Neden Gereklidir?

HTTP durum bilgisi olmayan bir protokoldür. Bir kullanıcı bir URL istediğinde, web sunucusu istenen sayfayı sunar ve bağlantıyı kapatır (yani, tarayıcı ile web sunucusu arasındaki TCP soketi kapatılır). Sunucu perspektifinden bakıldığında, her istek benzersizdir ve önceki isteklerden yalıtılmıştır. Her istekten sonra bağlantıyı kapatarak, sunucu aynı kaynaklara (işleme kapasitesi, ana bellek vb.) sahip daha fazla kullanıcıya hizmet verebilir. Sunucu bağlantıyı kapatmazsa, web sayfası tarayıcıda açık olduğu sürece bazı sunucu kaynakları meşgul tutulur.

Bazen web geliştiricisinin, kullanıcıya kişiselleştirilmiş içerik sunmak için belirli bir istekte bulunanları tanımlaması gerekir. Şimdi bazı sahneleri açıklıyorum, oturumda saklamamız gerekebilecek farklı veri türlerini anlamanıza yardımcı olacaktır:

  • Session Kullanımı Örnek 1

Kullanıcı başarıyla oturum açtıktan sonra, kullanıcının oturum açtığını kaydetmek istiyoruz, böylece kullanıcının pano.php veya profil.php gibi güvenli sayfalara yönelik istekleri, kullanıcıdan tekrar oturum açmasını istemeden sunulabilir. Güvenli sayfalarda oturum açmış kullanıcı adını göstermemiz gerekebilir. Kullanıcı oturum açtığında, kullanıcı adını oturuma saklarız, sonraki isteklerde, kullanıcı adının oturumda var olup olmadığını kontrol edebiliriz, yani kullanıcı oturum açmıştır ve kullanıcı adına oturumdan bazı sayfalarda gösterilecek şekilde erişilebilir.

  • Session Kullanımı Örneği 2

E-commernce web siteleri, kullanıcının yeniden ziyaret etmesini kolaylaştırmak için kullanıcının yakın zamanda ziyaret ettiği ürünlerin listesini görüntüler. Kullanıcının ziyaret ettiği ürünlerin listesini oturumda saklayabiliriz. Örneğin, kullanıcı bir ürün kimliği ileten bir ürün sayfasını her açtığında, bu ürün kimliğini oturumda saklayabiliriz. Her istekte, kullanıcının yakın zamanda ziyaret ettiği tüm ürün kimliklerini alabilir ve bu ürünlerin adlarını ve resimlerini gösterebilir.

  • Session Kullanımı Örneği 3

Çok sayfalı bir form varsayalım, Sayfa 1 kişisel bilgileri almak için bir form gösterir, sayfa 2 eğitim ayrıntılarını alır ve sayfa 3 aile bilgilerini alır. Uygulama yalnızca kullanıcı üç formu da doldurduğunda tamamlanır. Bu nedenle, bu tür sahneler, sayfa 1 ve sayfa 2 gönderilen verileri oturuma saklayabiliriz, kullanıcı sayfa 3’ü gönderdiğinde, oturumdan sayfa 1 ve sayfa 2 verilerini ve gönderilen HTTP isteğinden sayfa 3 verilerini alabilir ve tüm verileri tek bir insernt ifadesinde veritabanında saklayabiliriz.

Gördüğünüz gibi, oturum, kullanıcıyı istekler arasında izlememize yardımcı olur (bir sonraki bölümde, sunucuda binlerce etkin oturum olsa bile benzersiz bir oturumun nasıl tanımlandığını açıklayacağım).

  • Session Kullanımı Örneği 4

Kullanıcının alışveriş sepetine eklediği ürünlerin listesini ve miktarlarını depolamak için oturumu kullanabiliriz. Bu veriler de kullanıcı siparişi onaylayana kadar geçicidir. Kullanıcı siparişi onayladığında, verileri alışveriş sepetinden veritabanına taşıyabiliriz, örneğin siparişler tablosunda. Kullanıcı siparişi onaylamazsa, oturumda depolanan veriler, kullanıcı bir süre sunucuyla etkisiz hale gelmediğinde otomatik olarak taşınır.

Web Uygulamasında Oturum Nedir?

Web geliştiricisinin, web uygulamasıyla etkileşim kuran her kullanıcı için küçük verileri geçici olarak sunucu tarafında depolaması gerekebilir. Bu tür veriler bir oturumda depolanır. Bu nedenle oturum web sunucusunda geçici bir depolamadır. Her kullanıcı için, sunucuda benzersiz bir oturum vardır. Belirli bir kullanıcının istek işleme alınması sırasında, kullanıcının oturumuna tüm web sayfalarından erişilebilir, yani oturumda depolanan verilere dizine göre .php ürünlere.php veya başka bir sayfaya göre erişilebilir.

Oturum verileri, anahtarın dize olduğu ve değerin herhangi bir nesne olabileceği anahtar/değer biçiminde depolanır. PHP’deki associative-array veya Java’daki map/hashmap gibi bir veri yapısıdır. Yani bazı anahtarlara karşı değerleri kaydedersiniz.

Önemli olan, oturumun her kullanıcı için benzersiz olmasıdır. Sunucuyla etkileşime giren 10 kullanıcı varsa, sunucu tarafında oluşturulan 10 oturum olacaktır. Her kullanıcı için bir tanedir. Aşağıdaki resimde bu fikir açıklanmaktadır; web sunucusuyla etkileşime giren U1, U2, U3 olmak üzere 3 kullanıcı vardır, bu nedenle sunucu tarafında her kullanıcı için bir tane olmak üzere 3 oturum vardır

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir