Web depolamaya genel bakış

Marc Cohen

Hem yerel cihaz depolama alanı hem de bulut tabanlı sunucu depolama alanı için doğru depolama mekanizmalarını seçmek önemlidir. İyi bir depolama motoru, bilgilerinizin güvenilir bir şekilde kaydedilmesini sağlar, bant genişliğini azaltır ve duyarlılığı artırır. Doğru depolama alanı önbelleğe alma stratejisi, çevrimdışı mobil web deneyimlerini etkinleştirmenin temel yapı taşlarından biridir.

Bu makalede, depolama API'lerini ve hizmetlerini değerlendirmek için kısa bir temel sağlanmaktadır. Ardından, bir karşılaştırma tablosu ve bazı genel yönergeler sunulmaktadır. Yakın gelecekte, belirli depolama alanıyla ilgili konuları daha ayrıntılı bir şekilde anlamanıza yardımcı olacak kaynaklar eklemeyi planlıyoruz.

Depolama Sınıflandırması

Web uygulamaları için veri depolama alanını analiz edebileceğimiz bazı boyutları anlayarak başlayalım. Daha sonra, web geliştiricilerinin kullanabileceği birçok depolama alanı seçeneğini listelemek ve değerlendirmek için bu çerçeveyi kullanacağız.

Veri Modeli

Veri birimleri depolama modeli, verilerin dahili olarak nasıl düzenlendiğini belirler. Bu da depolama ve alma isteklerinin kullanım kolaylığını, maliyetini ve performansını etkiler.

  • Yapılandırılmış: SQL tabanlı veritabanı yönetim sistemlerinde olduğu gibi önceden tanımlanmış alanlara sahip tablolarda depolanan veriler, sorgu türlerinin tamamının önceden bilinemediği esnek ve dinamik sorgular için idealdir. Tarayıcıda yapılandırılmış veri deposu örneği olarak IndexedDB gösterilebilir.

  • Anahtar/Değer: Anahtar/değer veri depolama alanları ve ilgili NoSQL veritabanları, benzersiz bir anahtarla dizine eklenen yapılandırılmamış verileri depolama ve alma olanağı sunar. Anahtar/değer veri depoları, dizine eklenen şeffaf olmayan verilere sabit zamanlı erişime izin vermeleri açısından karma tablolara benzer. Anahtar/değer veri depolama alanlarına örnek olarak tarayıcıdaki Cache API ve sunucudaki Apache Cassandra verilebilir.

  • Bayt Akışları: Bu basit model, verileri değişken uzunlukta, opak bir bayt dizesi olarak depolar ve tüm dahili organizasyonu uygulama katmanına bırakır. Bu model özellikle dosya sistemleri ve hiyerarşik olarak düzenlenmiş diğer veri kümeleri için iyidir. Bayt akışı veri depolama alanlarına örnek olarak dosya sistemleri ve bulut depolama alanı hizmetleri verilebilir.

Kalıcı

Web uygulamaları için depolama alanı yöntemleri, verilerin kalıcı hale getirildiği kapsama göre analiz edilebilir.

  • Oturum Kalıcılığı: Bu kategorideki veriler yalnızca tek bir web oturumu veya tarayıcı sekmesi etkin olduğu sürece saklanır. Oturum sürekliliği olan bir depolama mekanizması örneği Session Storage API'dir.

  • Cihaz Kalıcılığı: Bu kategorideki veriler, belirli bir cihazdaki oturumlar ve tarayıcı sekmeleri/pencereleri arasında saklanır. Cihaz kalıcılığına sahip bir depolama mekanizması örneği olarak Önbelleğe Alma API'sini gösterebiliriz.

  • Küresel Kalıcılık: Bu kategorideki veriler oturumlar ve cihazlar arasında saklanır. Bu nedenle, veri kalıcılığı için en sağlam yöntemdir. Google Cloud Storage, global kalıcılık özelliğine sahip bir depolama mekanizması örneğidir.

Tarayıcı desteği

Geliştiriciler, sorun alanlarına en uygun API'yi seçmelidir. Bununla birlikte, standartlaştırılmış ve iyi kurulmuş API'lerin daha uzun ömürlü ve daha yaygın olarak desteklendiği için özel veya özel arayüzlere tercih edildiğini de göz önünde bulundurmalıdır. Ayrıca daha geniş bir bilgi havuzundan ve daha zengin bir geliştirici ekosisteminden yararlanabilirler.

İşlemler

İlgili depolama işlemlerinin bir koleksiyonunun atomik olarak başarılı veya başarısız olması genellikle önemlidir. Veritabanı yönetim sistemleri geleneksel olarak bu özelliği, ilgili güncellemelerin keyfi birimler halinde gruplandırılabileceği işlem modelini kullanarak desteklemiştir. Her zaman gerekli olmasa da bu özellik bazı sorun alanlarında kullanışlı ve bazen de gereklidir.

Senkronize/Eş zamansız

Bazı depolama API'leri, depolama veya getirme isteklerinin tamamlanana kadar etkin olan iş parçasını engellemesi açısından senkronizedir. Bu durum, depolama alanı isteğinin ana ileti dizisini kullanıcı arayüzüyle paylaştığı web tarayıcılarında özellikle can sıkıcıdır. Verimlilik ve performans nedeniyle, asenkron depolama API'leri tercih edilmelidir.

Chrome DevTools'da depolama alanında hata ayıklama

Tercih ettiğiniz web depolama alanı API'sini incelemek ve hata ayıklamak için Chrome Geliştirici Araçları'nı kullanma hakkında daha fazla bilgi edinmek üzere aşağıdaki dokümanlara göz atın. Burada bahsedilmeyen API'ler DevTools'ta desteklenmez veya geçerli değildir.

Birden fazla depolama alanı API'si kullanıyorsanız DevTools'un Depolama Alanını Temizle özelliğine göz atın. Bu özellik, tek bir düğme tıklamasıyla birden fazla mağazayı temizlemenize olanak tanır. Daha fazla bilgi için Hizmet çalışanlarını, depolama alanlarını, veritabanlarını ve önbellekleri temizleme başlıklı makaleyi inceleyin.

Sonraki durak neresi?

Depolama mekanizmaları hakkında düşünmenin alakalı yollarından bazılarını inceleyip günümüzde mevcut olan en popüler API'leri ve hizmetleri karşılaştırdığımıza göre, yakında ilgi çekici bir veya daha fazla konuyu daha ayrıntılı şekilde incelemek için daha fazla içerik ekleyeceğiz: