yerel depolama ne demek?

Yerel Depolama (Web)

Yerel depolama, web tarayıcılarının, kullanıcının bilgisayarında, kullanıcıya ait web sitesi verilerini saklamasına olanak tanıyan bir web teknolojisidir. Çerezler'e benzer şekilde çalışır ancak daha büyük depolama kapasitesine sahiptir ve daha güvenlidir. Yerel depolama, verilerin istemci tarafında (yani kullanıcının tarayıcısında) kalıcı olarak saklanmasını sağlar. Bu, sunucuya sürekli istek göndermek yerine, web uygulamalarının verileri daha hızlı yüklemesini ve daha çevrimdışı çalışabilmesini mümkün kılar.

Temel Kavramlar

  • Depolama Alanı: Her alan adı (domain) kendi yerel depolama alanına sahiptir. Bu, bir web sitesinin verilerinin, diğer web sitelerinin verileriyle karışmasını önler.

  • Anahtar/Değer Çiftleri: Veriler, anahtar/değer çiftleri olarak saklanır. Her anahtar benzersiz olmalıdır ve değer, metin tabanlı herhangi bir veri olabilir (sayılar, tarihler vb. string olarak saklanır).

  • Depolama Türleri:

    • localStorage: Veriler, tarayıcı kapatılsa bile kalıcı olarak saklanır. Kullanıcı açıkça silene kadar veya web sitesi koduyla silinene kadar saklanmaya devam eder. Genellikle kullanıcı ayarları, uygulama durumu ve çevrimdışı veri depolaması için kullanılır.
    • sessionStorage: Veriler, tarayıcı sekmesi veya penceresi kapatılana kadar saklanır. Genellikle oturum tabanlı verileri (örneğin, bir alışveriş sepetindeki ürünler) saklamak için kullanılır.

Yerel Depolamanın Avantajları

  • Gelişmiş Performans: Verileri istemci tarafında saklayarak, sunucuya yapılan istek sayısını azaltır ve web uygulamalarının daha hızlı yüklenmesini sağlar.

  • Çevrimdışı Çalışabilirlik: İnternet bağlantısı olmadığında bile, daha önce saklanmış verilere erişilebilir ve web uygulamalarının sınırlı işlevsellik sunması sağlanır. Bu, aşamalı web uygulamaları (PWA) için önemli bir özelliktir.

  • Daha Büyük Depolama Kapasitesi: Çerezler'e kıyasla çok daha büyük depolama kapasitesi sunar (genellikle 5-10 MB).

  • Güvenlik: Çerezler'e göre daha güvenli olarak kabul edilir, çünkü veriler HTTP istekleriyle otomatik olarak gönderilmez. Bu, Cross-Site Scripting (XSS) saldırılarına karşı bir miktar koruma sağlar. Ancak, yerel depolama da XSS saldırılarına karşı savunmasız olabilir, bu nedenle hassas verileri saklarken dikkatli olmak önemlidir.

Yerel Depolamanın Dezavantajları

  • Sadece Dize (String) Verileri: Veriler yalnızca dize olarak saklanabilir. Diğer veri türlerini (sayılar, nesneler vb.) saklamak için, verileri dizeye dönüştürmek ve geri okurken tekrar dönüştürmek gerekir. Bu işlem JSON kullanımıyla kolaylaştırılabilir.

  • Tarayıcı Desteği: Yerel depolama, modern web tarayıcıları tarafından geniş çapta desteklenmektedir. Ancak, çok eski tarayıcılar desteklemeyebilir. Bu nedenle, uygulamanızın hedef kitlesi için tarayıcı uyumluluğunu kontrol etmek önemlidir.

  • Güvenlik Riskleri: Yerel depolama, XSS saldırılarına karşı savunmasız olabilir. Bu nedenle, kullanıcıdan alınan veya hassas verileri saklarken dikkatli olmak ve giriş doğrulama (input validation) ve veri temizleme (data sanitization) gibi güvenlik önlemleri almak önemlidir.

  • Veri Yönetimi: Büyük miktarda veri saklamak, performans sorunlarına yol açabilir. Bu nedenle, yerel depolamada saklanan verilerin boyutunu ve sayısını yönetmek önemlidir.

Kullanım Örnekleri

Aşağıda JavaScript ile localStorage ve sessionStorage kullanımı için bazı örnekler verilmiştir:

localStorage örnekleri:

// Veri kaydetme
localStorage.setItem('kullaniciAdi', 'AliVeli');

// Veri okuma
const kullaniciAdi = localStorage.getItem('kullaniciAdi');
console.log(kullaniciAdi); // "AliVeli"

// Veri silme
localStorage.removeItem('kullaniciAdi');

// Tüm verileri silme
localStorage.clear();

sessionStorage örnekleri:

// Veri kaydetme
sessionStorage.setItem('ziyaretSayisi', '1');

// Veri okuma
const ziyaretSayisi = sessionStorage.getItem('ziyaretSayisi');
console.log(ziyaretSayisi); // "1"

// Veri silme
sessionStorage.removeItem('ziyaretSayisi');

// Tüm verileri silme
sessionStorage.clear();

En İyi Uygulamalar

  • Hassas Verileri Saklamayın: Kullanıcı parolaları, kredi kartı bilgileri veya diğer hassas verileri yerel depolamada saklamaktan kaçının. Bu tür veriler için sunucu tarafında güvenli depolama yöntemleri kullanın.

  • Giriş Doğrulaması ve Veri Temizleme: Kullanıcıdan alınan verileri yerel depolamada saklamadan önce doğrulayın ve temizleyin. Bu, XSS saldırılarını önlemeye yardımcı olur.

  • Veri Boyutunu Yönetin: Yerel depolamada saklanan verilerin boyutunu ve sayısını sınırlayın. Büyük miktarda veri saklamak, performans sorunlarına yol açabilir.

  • Tarayıcı Uyumluluğunu Kontrol Edin: Uygulamanızın hedef kitlesi için tarayıcı uyumluluğunu kontrol edin. Yerel depolama, modern web tarayıcıları tarafından geniş çapta desteklenmektedir, ancak çok eski tarayıcılar desteklemeyebilir.

  • Hata İşleme: Yerel depolama işlemlerinde hataları (örneğin, depolama alanı dolu) doğru bir şekilde işleyin ve kullanıcıya uygun bir geri bildirim sağlayın.

Alternatifler

Yerel depolamaya alternatif olarak kullanılabilecek bazı teknolojiler şunlardır:

  • Çerezler: Daha küçük depolama kapasitesine sahiptirler ve güvenlik açısından daha risklidirler.
  • IndexedDB: Daha karmaşık veri yapılarını (nesneler, diziler vb.) saklamak için kullanılan bir tarayıcı tabanlı veritabanıdır. Daha büyük depolama kapasitesine sahiptir ve daha gelişmiş sorgulama yetenekleri sunar.
  • Web SQL: Artık yaygın olarak kullanılmayan, tarayıcı tabanlı bir SQL veritabanıdır.
  • Sunucu Taraflı Depolama: Verileri sunucuda saklamak, daha güvenli ve ölçeklenebilir bir çözüm olabilir. Ancak, sunucuya sürekli istek göndermek, performansı etkileyebilir.

Sonuç

Yerel depolama, web uygulamalarının performansını artırmak, çevrimdışı çalışabilirliği sağlamak ve kullanıcı deneyimini iyileştirmek için güçlü bir araçtır. Ancak, güvenlik risklerini ve sınırlamalarını dikkate almak ve en iyi uygulamaları izlemek önemlidir. Doğru kullanıldığında, yerel depolama, modern web uygulamalarının vazgeçilmez bir parçası olabilir.

Kendi sorunu sor