Privacy & Security

Görselleri tarayıcıda işlemek gizlilik açısından neden avantajdır

Modern web API’leri gerçekten özel görsel araçları oluşturmanıza nasıl olanak tanıyor — ve bu, onları kullanan insanlar için ne anlama geliyor.

The Wux Webtools Team The Wux Webtools Team 5 dakika okuma
Editorial illustration of a closed laptop with a small lock icon, soft green and slate palette
İçindekiler
  1. Varsayılan beklenti yanlış
  2. "Client-side" aslında ne anlama gelir
  3. Bu pratikte neden önemlidir
  4. Ödünleşimler hâlâ nerede
  5. Soğuk başlangıç daha ağırdır
  6. Tavanı kullanıcının donanımı belirler
  7. Kullanıcılar arasında batch yapamazsınız
  8. Bazı işlemler sunucu gerektirir
  9. Küçük bir etik nokta
  10. Buradan nereye

Varsayılan beklenti yanlış

Son yirmi yılın büyük bölümünde, web’de bir görselle sıradan olmayan herhangi bir şey yapmak onu bir sunucuya yüklemek anlamına geliyordu. Bir HEIC fotoğrafı dönüştürmek, EXIF metadata’sını temizlemek, bir favicon oluşturmak — bu araçların her biri tarihsel olarak bir multipart form arkasında çalışıyordu. Kullanıcı upload düğmesine tıklıyor, dosya herkese açık internet üzerinden yol alıyor ve bir yerlerdeki sunucu işi yapıyordu.

Bu varsayılan artık teknik olarak gerekli değil. Tarayıcılar yıllar önce tüm hattın yerel olarak çalışmasını sağlayan API’ler sundu:

  • <canvas> and OffscreenCanvas piksel düzeyi işler için
  • createImageBitmap() hızlı, ana iş parçacığı dışında decoding için
  • File and Blob yüklenen dosyaları hiçbir yere göndermeden okumak için
  • WebAssembly libheif, libwebp and ffmpeg gibi kütüphaneler için
  • Web Workers ağır işler çalışırken UI’ın yanıt vermeyi sürdürmesi için

Bunları bir araya getirdiğinizde dosya cihazdan hiç ayrılmaz. Sunucu onu asla görmez. Loglanacak bir şey yoktur, sızacak bir şey yoktur, mahkeme celbine konu olacak bir şey yoktur.

"Client-side" aslında ne anlama gelir

Kesin konuşmaya değer, çünkü pek çok "özel" aracın pazarlama metni gevşektir.

Bir araç, sayfa yüklendikten sonra dosyanın içeriğinin hiçbir parçası hiçbir zaman bir sunucuya gitmiyorsa gerçekten client-side’dır. Sayfanın kendisi bir sunucudan yüklenir (HTML, JavaScript, belki bir WebAssembly modülü). Bundan sonra dosyanız tarayıcının belleğine girer ve sekmeyi kapatana kadar orada kalır.

Bir araç şu durumlarda client-side değildir:

  • Dosyayı bir /api/... endpoint’ine POST ediyorsa
  • Bir sunucuya thumbnail veya preview gönderiyorsa
  • Dosya metadata’sı (boyutlar, ad, hash) ile bir analytics endpoint’i çağırıyorsa
  • Dosyayı işlenmiş bir URL döndüren üçüncü taraf bir CDN üzerinden yönlendiriyorsa

Tarayıcınızın devtools içindeki ağ paneli gerçeği söyler. Açın, bir dosya bırakın ve neyin yüklendiğini kontrol edin. Dosya adınızın veya dosya boyutunuzun dışarı gittiğini görüyorsanız, araç iddia ettiği kadar özel değildir.

Bu pratikte neden önemlidir

Görsel işleme tarayıcıya taşındığında üç insan grubu sessizce fayda görür.

Gazeteciler, aktivistler ve araştırmacılar sızması hâlinde tehlikeli olabilecek kaynak materyallerle çalışır. EXIF metadata, fotoğrafı çeken cihazın GPS koordinatlarını içerebilir. Tarayıcı tarafında çalışan bir EXIF temizleyici, özgün dosyanın ağ üzerinden hiç geçmemesi anlamına gelir.

Regülasyon altındaki şirketler — sağlık, finans, hukuk — aksi hâlde aracı çalıştıran kişiyle bir veri işleme sözleşmesi yapmak zorunda kalırdı. İşi yerel olarak yapan statik bir sayfa için imzalanacak DPA yoktur, çünkü ortada bir veri işleyen yoktur.

Geri kalan herkes bariz faydaları elde eder: daha hızlı sonuç (yükleme süresi yok), hosting faturasının belirlediği dosya boyutu sınırları yok, sunucu çöktüğünde başarısızlık yok.

Ödünleşimler hâlâ nerede

Client-side sihir değildir. Belirli bir problem için onu seçmeden önce düşünmeniz gereken gerçek maliyetler vardır.

Soğuk başlangıç daha ağırdır

HEIC decoding için bir WebAssembly paketi birkaç yüz kilobayttır. WASM’e derlenmiş ffmpeg birkaç megabayttır. İlk ziyaret bu maliyeti öder. Önbellekleme yardımcı olur, kod bölme daha da fazla yardımcı olur — yalnızca kullanıcının gerçekten seçtiği codec’i yükleyin.

Tavanı kullanıcının donanımı belirler

200 megapiksellik bir RAW dosyası, bir sunucuda tükenmeden çok önce giriş seviyesi bir telefonda belleği tüketir. UI’da cihazda neyin gerçekçi olduğu konusunda dürüst olun.

Kullanıcılar arasında batch yapamazsınız

Sunucu tarafı işleme deduplicate edebilir ve maliyeti yayabilir. Bir milyon kullanıcı aynı stok görseli dönüştürürse, bir sunucu onu bir kez işleyebilir. Client-side bunu bir milyon kez yapar. Çoğu kişisel araç iş yükü için bu sorun değildir — iş zaten benzersizdir — ama bilmeye değer.

Bazı işlemler sunucu gerektirir

Reverse image search bir index gerektirir. Content moderation, gönderilemeyecek kadar büyük bir model gerektirir. Dosyanızı sahip olmadığınız bir corpus ile karşılaştıran her şey backend gerektirir.

Küçük bir etik nokta

Aracınız gerçekten client-side ise, bunu yüksek sesle söyleyin ve kanıtlayın. Kaynak koda link verin, ağ panelini gösterin, neyin nerede çalıştığını açıklayın. "Verilerinizi saklamıyoruz" gibi ifadeler, onları destekleyecek bir mimari olmadan hiçbir şey ifade etmez — müşteri verisi sızdırmış her sunucu tarafı araç da tam olarak bunu söylemişti ve o anda bunu samimiyetle kastediyordu.

Tersi de geçerlidir. Aracınız server-side ise, aksini iddia etmeyin. Kullanıcılar bu örüntüyü tanımayı öğrendi ve sizi yakaladıklarında oluşan güven kaybı kalıcıdır.

<!-- tool-cta:start -->

💡 Bunu deneyin: Görselleri tamamen tarayıcınızda küçülten ve böylece hiçbir şeyin asla bir sunucuya yüklenmemesini sağlayan Image Compressor ile istemci tarafı işlemeyi çalışırken görün.

<!-- tool-cta:end -->

Buradan nereye

Bugün küçük bir görsel yardımcı aracı geliştiriyorsanız, varsayılan olarak client-side’ı seçin ve yalnızca somut bir nedeniniz olduğunda sunucuya başvurun. Tarayıcının işi ne kadar ileri taşıyabildiği sizi şaşırtacaktır — ağ bağlantısının diğer ucundaki insanlar da makinelerinden hiç ayrılmayan baytlar için size sessizce teşekkür edecektir.

Diagram showing a browser-only image processing flow where the page loads once, then the file stays in browser memory and never reaches a server
InfographicWhat truly client-side image processing looks like — A genuinely client-side tool loads code first, then keeps the file entirely inside the browser
Two-column comparison of genuine client-side tools versus tools that still send files, thumbnails, or metadata to servers
InfographicClient-side vs fake-private processing — The network panel is the simplest test: if file contents, thumbnails, or metadata leave the browser, it is not fully client-side
Checklist-style visual summarizing privacy and speed benefits of browser processing alongside cold start, hardware, batching, and backend limits
InfographicWhere browser-side processing wins — and where it doesn't — Browser-side tools remove upload risk, but cold starts, device limits, and corpus-scale tasks still define the boundary

Sıkça sorulan sorular

Client-side işleme her zaman server-side işlemeye göre daha mı özeldir?
Doğru uygulandığında evet — dosya ağdan hiç geçmez, dolayısıyla yakalanamaz, loglanamaz veya bir ihlalde ele geçirilemez. Çekince uygulamadadır: bir araç HTTPS üzerinden yüklenebilir, tarayıcınızda render edilebilir ve yine de dosyanızı üçüncü taraf bir endpoint’e gönderebilir. Ağ panelini her zaman kontrol edin.
O hâlde neden tüm araçlar bu şekilde çalışmıyor?
Üç neden var. Bazı işlemler gerçekten sunucu gerektirir (reverse search, content moderation, indexing). Bazı eski ürünlerin tamamen yeniden yazılması gerekir. Bazı şirketler de kullanıcıların ne yüklediğini görmekten gelen analytics sinyalini ister.
WebAssembly bilgisayarımı yavaşlatır mı?
Anlamlı bir şekilde hayır. Modern WASM native hıza yakın çalışır. Görünür maliyet, modülün ilk indirilmesidir. Önbelleğe alındıktan sonra sonraki çalıştırmalar fiilen ücretsizdir.
Peki ya çok büyük dosyalar?
Tavan tarayıcı belleğidir. Telefonlar ve düşük seviye dizüstüler, bir sunucudan çok önce tükenir. İyi oluşturulmuş bir araç, sekmenin çökmesi yerine bir dosyanın cihaz için muhtemelen fazla büyük olduğunu size önceden söyler.

Kaynaklar ve ileri okuma

  1. MDN — File API
  2. MDN — Web Workers
  3. WebAssembly.org — Use cases
Yazar hakkında
The Wux Webtools Team

Son güncelleme:

Devamını oku