Web depolamaya genel bakış

Marc Cohen

Hem yerel cihaz depolama hem de bulut tabanlı sunucu depolaması 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 yanıt verme süresini iyileştirir. Doğru depolama önbelleğine alma stratejisi, çevrimdışı mobil web deneyimlerini etkinleştirmek için temel bir yapı taşıdır.

Bu makalede, depolama alanı API'lerini ve hizmetlerini değerlendirmek için kısa bir temel sunulmakta ve ardından bir karşılaştırma tablosu ve bazı genel yol gösterici bilgiler sağlanacaktır. Yakın gelecekte, seçili depolama konularını daha iyi anlamamızı sağlayacak kaynaklar eklemeyi planlıyoruz.

Depolama Sınıflandırması

Öncelikle web uygulamaları için veri depolamayı analiz edebileceğimiz bazı boyutları anlayarak başlayalım. Daha sonra, web geliştiricilerin kullanabileceği birçok depolama seçeneğini numaralandırmak ve değerlendirmek için bu çerçeveyi kullanacağız.

Veri Modeli

Veri birimlerini depolama modeli, verilerin dahili olarak nasıl düzenleneceğini belirler. Bu durum, 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, tüm sorgu türlerinin önceden bilinemediği esnek ve dinamik sorgular için uygundur. Tarayıcıdaki yapılandırılmış veri deposunun belirgin bir örneği IndexedDB'dir.

  • Anahtar/Değer: Anahtar/Değer veri depoları 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 eklenmiş, opak verilere sürekli erişim olanağı sağlaması açısından karma tablolarına benzer. Anahtar/değer veri depolarının belirgin örnekleri, tarayıcıdaki Cache API ve sunucuda Apache Cassandra'dır.

  • Bayt Akışları: Bu basit model, verileri değişken uzunlukta ve opak bir bayt dizesi olarak depolayarak uygulama katmanına her türlü dahili organizasyonu bırakır. Bu model, özellikle dosya sistemleri ve hiyerarşik olarak düzenlenmiş diğer veri blob'ları için uygundur. Bayt akışı veri depolarının belirgin örnekleri arasında dosya sistemleri ve bulut depolama hizmetleri sayılabilir.

Kalıcı

Web uygulamaları için depolama 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 kaldığı sürece saklanır. Oturum kalıcılığına sahip bir depolama mekanizmasına örnek olarak Session Storage API verilebilir.

  • Cihaz Kalıcılığı: Bu kategorideki veriler, belirli bir cihazdaki oturumlar ve tarayıcı sekmeleri/pencereleri genelinde saklanır. Cihaz kalıcılığını sağlayan depolama mekanizmasına örnek olarak Cache API verilebilir.

  • Genel Kalıcılık: Bu kategorideki veriler, oturumlar ve cihazlar genelinde saklanır. Dolayısıyla en sağlam veri kalıcılığı biçimidir. Küresel kalıcılığa sahip depolama mekanizmasına örnek olarak Google Cloud Storage verilebilir.

Tarayıcı Desteği

Geliştiriciler, problem alanlarına en uygun API'yi seçmelidir. Bununla birlikte, daha uzun ömürlü olma ve daha yaygın şekilde desteklenme eğiliminde oldukları için standartlaştırılmış ve sağlam API'lerin özel veya tescilli arayüzlere tercih edildiğini de dikkate almaları gerekir. Ayrıca, daha geniş bir bilgi tabanına ve daha zengin bir geliştirici ekosistemine sahip olabilirler.

İşlemler

Genellikle, ilgili depolama işlemleri koleksiyonunun anatomik olarak başarılı veya başarısız olması önemlidir. Veritabanı yönetim sistemleri, bu özelliği geleneksel olarak işlem modelini kullanarak desteklemektedir. Bu modelde, ilgili güncellemeler rastgele birimler halinde gruplandırılabilir. Her zaman gerekli olmasa da, bu bazı sorunlu alanlarda kolay, bazen de gerekli bir özelliktir.

Senkronize/Eş zamansız

Bazı depolama API'leri, depolama veya alma isteklerinin, istek tamamlanana kadar etkin olan iş parçacığını engellemesi açısından eşzamanlıdır. Bu işlem, depolama isteğinin ana iş parçacığını kullanıcı arayüzü ile paylaştığı web tarayıcılarında özellikle zahmetlidir. Verimlilik ve performans için eşzamansız depolama API'leri tercih edilir.

Chrome Geliştirici Araçları'nda depolama alanında hata ayıklama

Chrome Geliştirici Araçları'nı kullanarak web depolama API'nizi inceleme ve hata ayıklama hakkında daha fazla bilgi edinmek için aşağıdaki belgelere göz atın. Burada belirtilmeyen API'ler, Geliştirici Araçları'nda desteklenmez veya geçerli değildir.

Birden fazla depolama alanı API'si kullanıyorsanız Geliştirici Araçları'nın Depolama Alanını Temizle özelliğine göz atın. Bu özellik, tek bir düğmeyi tıklayarak birden fazla mağazayı temizlemenize olanak tanır. Daha fazla bilgi için Service Worker'ları, depolama alanlarını, veritabanlarını ve önbelleği temizleme başlıklı makaleye göz atın.

Sonraki adımlar...

Depolama mekanizmalarını değerlendirmenin ilgili yöntemlerinden bazılarını incelediğimize ve bugün mevcut olan en popüler API'ler ile hizmetleri karşılaştırdığımıza göre, bir veya daha fazla ilgi alanını daha ayrıntılı olarak incelemek için yakında daha fazla içerik ekleyeceğiz: