Oturum ve yerel depolama, verileri durumsuz HTTP istekleriyle birlikte depolamanıza olanak tanıyan tarayıcı depolama yöntemleridir. Çerez tabanlı depolamaya bir alternatiftirler ve web geliştirmede birçok kullanımları vardır.
Çok benzer bir şekilde işleseler de, bilmeniz gereken önemli farklılıklar vardır.
Yerel Depolama ve Oturum Depolaması: Kullanımları Nelerdir?
Yerel ve oturum depolama, verileri istemci tarafında depolamak için kullanabileceğiniz JavaScript API'leridir. Bir web sitesinin tarayıcıda veri depolamasına izin verir ve tarayıcıya daha sonra erişmesi için talimat verir.
İhtiyaçlarınıza bağlı olarak, verileri depolamak için yerel veya oturum depolamayı kullanabilirsiniz. Her iki depolama yöntemi de çerezlere benzer ancak çerezleri çevreleyen aynı gizlilik endişeleri. Bu nedenle, çoğu modern web sitesi, yalnızca web depolama yöntemlerini kullanmayı veya geri dönüş olarak bunları çerezlerle birleştirmeyi tercih eder.
Çerezlerin aksine, yerel depolama ve oturum depolaması, HTTP başlıkları aracılığıyla sunucuya veri göndermez. Bunları yalnızca istemci tarafı işlevi için kullanmalısınız.
Ayrıca, yerel ve oturum depolama alanlarının her birinin, etki alanı başına yaklaşık 5 MB depolama sınırı vardır. Çerez başına yalnızca 4 KiB kapasiteye sahip çerezlerden daha fazla depolama sağlarlar.
Oturum Depolama Nedir?
Bir göz atma oturumu, bir web sitesi kullanımınıza yaklaşır. Bir siteyi ziyaret ettiğinizde, biraz gezindikten sonra bilgisayarınızı kapattığınızda, o zamanı tek bir oturum olarak düşünebilirsiniz. Tarayıcı yapılandırmanız bunu incelikli şekillerde değiştirebilir, ancak bir oturum, bir siteyle etkileşimde bulunduğunuz zaman dilimini temsil etmeyi amaçlar.
Oturum depolama, her tarayıcı sekmesine özeldir. Yeni bir sekme açar ve aynı siteye giderseniz, kendi depolama alanıyla yeni bir oturum başlatırsınız. Ancak, tarayıcınızda "yinelenen sekme" özelliği kullanırsanız, bu aynı oturumu yeniden kullanabilir. Bir "oturum"un belirli ayrıntılarına çok fazla güvenemezsiniz. Bunun yerine temel konsepte odaklanın: oturum depolaması geçicidir.
Oturum depolama, anahtar/değer çifti verileriyle çalışmak için yerleşik API yöntemlerine sahiptir. Şuradan veri depolayabilirsiniz: JavaScript şöyle:
sessionStorage.setItem("anahtar", "değer");
Ve saklanan değeri almak için:
sessionStorage.getItem("anahtar");
Her ikisinin de anahtar ve değer yalnızca dize türleridir. Farklı bir tür depolamak istiyorsanız, onu doğrudan veya dolaylı olarak bir dizeye dönüştürmeniz gerekir.
Yerel Depolama Nedir?
Yerel depolama, farklı sekmelerde veya pencerelerde olsunlar, bir sitenin tüm örneklerinde verileri tutar. Ayrıca kalıcıdır, bu nedenle tarayıcınızı kapattığınızda veriler kaybolmaz.
Daha önce yerel depolamayı kullanan bir web sitesini açtığınızda, depolanan verilere her zaman erişimi olacaktır.
Bir web geliştiricisi olarak, bir kullanıcı hakkındaki verileri saklamak için bu mekanizmayı kullanabilirsiniz. Bazı web siteleri, oturumunuzu açık tutmak veya daha kişiselleştirilmiş bir deneyim sağlamak için bunu kullanabilir.
Oturum depolama gibi, bir satır JavaScript koduyla yerel bir depolama nesnesi ayarlayabilirsiniz:
localStorage.setItem("anahtar", "değer");
Anahtarın değerine erişmek için:
localStorage.getItem("anahtar");
Bu yöntemlerin oturum depolama ile aynı şekilde çalıştığını, yalnızca farklı türde bir veri deposu kullandıklarını unutmayın.
Oturum depolaması, oturum biter bitmez verileri temizlerken, yerel depolamayı temizlemenin tek yolu onu açıkça silmektir. Her iki depolama türü de verileri temizlemek için iki yöntem sunar. İlki, anahtarına dayalı olarak belirli bir veri öğesini kaldırır:
localStorage.removeItem("anahtar");
Anahtarından bağımsız olarak siteniz tarafından depolanan tüm verileri de kaldırabilirsiniz:
localStorage.clear();
Bu web depolama API yöntemleri hakkında daha fazla bilgiyi şurada bulabilirsiniz: javascript.info İnternet sitesi.
Yerel Depolamaya Ne Zaman İhtiyaç Duyarsınız?
Yerel depolama kalıcı olduğundan, kullanıcı ziyaretleri boyunca verileri saklamak en iyi seçeneğinizdir. Site tercihlerini depolamak veya uzun vadeli verileri önbelleğe almak istiyorsanız, yerel depolama uygundur. Kalıcı olduğu için yerel depolamayı kullanarak daha hassas verileri depolamak istemeyebilirsiniz.
Yerel ve oturum depolaması ön uç yöntemler olduğundan, bunları kullanıcı oturum açma gibi sunucu tabanlı işlevler için kullanmaktan kaçınmak isteyebilirsiniz. Bu durumlarda çerezleri bir alternatif olarak düşünebilirsiniz.
Oturum Depolamasına Ne Zaman İhtiyaç Duyarsınız?
Yalnızca bir kullanıcı sitenizle etkileşime girerken verileri depolamak istiyorsanız, oturum depolama idealdir. Bu, sitenize yapılan belirli bir ziyaretle ilgili kısa süreli önbelleğe alma veya kullanım verileri için olabilir.
Oturum depolama, süresi dolduğundan daha hassas bilgileri depolamak için daha iyidir.
Yerel Depolama vs. Oturum Depolama: Hangisi Daha Güvenli?
Gördüğünüz gibi, yerel ve oturum depolama yöntemleri birçok yönden benzerdir, ancak yine de özel kullanım durumları vardır. JavaScript'in erişebildiği ön uç teknolojiler oldukları için ikisini de güvenli olarak düşünmemelisiniz. Ancak, oturum depolama çok uygundur ve geçici doğası güven vericidir.
Yerel depolama kalıcıdır, bu nedenle ek güvenlik endişeleri doğurabilir. Bir tarayıcı açan herkes teorik olarak yerel depolamaya erişebilir. farkında olmalısın XSS saldırıları nasıl çalışır ve bunların nasıl önleneceği.
Yerel Depolama veya Oturum Depolama: Hangisini Kullanmalısınız?
Oturum depolama, geçici yapısı nedeniyle biraz daha güvenlidir. Ancak, web depolama yöntemi seçiminiz gereksinimlerinize bağlıdır. JavaScript depolama, yalnızca istemci tarafında kullanım için en uygun olanıdır. Ancak tarayıcı tabanlı uygun bir veri deposu sunar ve kullanımı çok kolaydır.
Yerel depolama, verileri birkaç sekmede depolarken, oturum depolamanın çoğunlukla her sekmeye özgü olduğunu unutmayın. Uygulamanızın mümkün olduğunca az varsayımda bulunduğundan ve uç durumlara hitap ettiğinden emin olmalısınız.
Çerezler, daha eski bir veri kalıcılığı biçimidir, ancak hala çok fazla kullanılmaktadır. Sunucuya iletmeniz gereken veriler için bunları kontrol etmek isteyebilirsiniz.