Sunucu tarafı ve istemci tarafı PDF araçları: nasıl çalışırlar?
Sunucu tarafı bir PDF aracı dosyanı işletmecinin bilgisayarlarına yükler, orada işler ve sonucu sana geri gönderir. İstemci tarafı bir araç ise bunun yerine programı tarayıcına indirir ve program dosyayı kendi cihazında işler. İlk durumda belgen yolculuk eder; ikincisinde yalnızca kod.
Bu tek fark, dosyanı kimin görebileceğini belirler. İki tür aracın neden farklı hissettirdiğini, farklı şekillerde başarısız olduğunu ve farklı işlere uyduğunu da açıklar. Bu yazı, her birinde gerçekte ne olduğunu adım adım anlatıyor.
Sunucu tarafı bir araçta ne olur?
- Bir dosya seçersin. Sayfa onu internet üzerinden işletmecinin sunucusuna gönderir; genellikle HTTPS ile yüklenir.
- Sunucu onu saklar; en azından iş süresince diskte ya da bellekte, çoğu zaman başka insanların dosyalarıyla birlikte bir kuyrukta.
- Sunucudaki bir program, örneğin bir PDF kütüphanesi, bir dönüştürücü ya da bir metin tanıma motoru, işi yapar.
- Sonuç da saklanır ve sayfa sana onu indirmen için bir bağlantı verir.
- Her iki dosya da daha sonra, işletmecinin kendi saklama kurallarına göre silinir.
Eskiden pratikte tek tasarım buydu. Tarayıcılar yavaştı ve PDF okuyup yeniden yazabilen kütüphaneler yalnızca sunucularda çalışıyordu. Bugünün tarayıcıları karmaşık kodu hızla çalıştırıyor ve JavaScript ile yazılmış açık kaynak PDF kütüphaneleri gündelik işlerin çoğunu bir sekmenin içinde yapabiliyor.
HTTPS, 1. adımı gizlice dinleyenlerden korur. 2–5. adımlar işletmeciye bağlıdır: güvenliğine, personelinin erişimine, yedeklerine ve sunucuların bulunduğu ülkedeki yasal yükümlülüklerine. Çoğu işletmeci bunu sorumlu bir şekilde yönetir, ama bunu yapacaklarına güveniyorsundur.
İstemci tarafı bir araçta ne olur?
- Araç sayfasını açarsın. Tarayıcın, her web sitesinde olduğu gibi sayfayı ve JavaScript kodunu indirir.
- Bir dosya seçersin. Tarayıcının File API’si onu diskinden sekmenin belleğine okur. Hiçbir şey gönderilmez.
- Sekmede çalışan kod işi yapar. Ağır kısımlar çoğu zaman bir arka plan iş parçacığı olan Web Worker’da çalışır, böylece sayfa yanıt vermeye devam eder.
- Sonuç bellekte oluşturulur ve kendi tarayıcındaki belleği gösteren geçici bir bağlantı üzerinden sana indirme olarak verilir.
- Sekmeyi kapattığında bellek serbest bırakılır. Başka bir yerde silinecek bir şey yoktur, çünkü hiçbir şey gönderilmemiştir.
Kopitiam’ın PDF araçları bu şekilde çalışır. Sayfaları okumak ve çizmek için Mozilla’nın açık kaynak PDF motoru pdf.js’i kullanırlar; ayrıştırıcısı bir Web Worker’da çalışır. Yeni PDF’i oluşturmak için başka bir açık kaynak kütüphane olan pdf-lib’i kullanırlar. İkisi de sekmenin içinde çalışır.
İstemci tarafı araçlar neden çevrimdışı çalışabilir?
Program tarayıcına geldikten sonra çalışmak için ağa ihtiyaç duymaz. Çevrimdışı testinin işe yaramasının nedeni budur: aracı yükle, Wi-Fi’ı kapat, araç çalışmaya devam eder. Gerçekten yükleme yapıyor olsaydı hemen başarısız olurdu.
Bilmeye değer ayrıntılar var. Kopitiam, PDF motorunun worker’ını sen bir dosya bıraktığında değil, araç sayfası açılır açılmaz başlatır; bu yüzden sayfa yüklendikten sonra bağlantı kopsa da araçlar çalışmaya devam eder. Daha az kullanılan bazı özellikler, ilk kullandığında ek kod yükler; örneğin Latin olmayan yazılardaki metin için yazı tipi motoru. Bu, dosyanın dışarı gitmesi değil, kodun sana gelmesidir.
İstemci tarafı işlemenin gerçek sınırları
İşi kendi cihazında yapmanın bedelleri vardır ve dürüst bir araç bunları sana söylemelidir.
- Bellek. Dosyanın tamamı sekmenin belleğinde durur, işlenirken çoğu zaman birden fazla kopya hâlinde. 200 MB’lık bir tarama bunun birkaç katına ihtiyaç duyabilir. Tarayıcılar sekme başına belleği sınırlar ve en sıkı sınırı telefonlar koyar.
- Hız. İşi bir veri merkezi değil, dizüstü bilgisayarın ya da telefonun yapar. 400 sayfayı resme çevirmek ya da uzun bir taramadaki her fotoğrafı yeniden sıkıştırmak eski bir cihazda belirgin şekilde daha uzun sürer.
- Pil ve ısınma. Telefondaki uzun bir iş, işlemciyi bir süre yoğun çalıştırır.
- Zor işler. Bazı görevler sunucu yazılımıyla çok daha kolaydır; büyük taranmış arşivlerde metin tanıma ya da karmaşık Office dosyalarını düzeni birebir koruyarak dönüştürmek gibi. Başka açılardan istemci tarafı olan birçok araç bu belirli işleri bir sunucuya gönderir.
Pratikte istemci tarafı bir aracın boyut sınırı, bir fiyat sayfasındaki sayı değil, cihazındır. Kopitiam’ın kodunda dosya boyutu sınırı yoktur; yani çok büyük bir dosya ya çalışır ya da bellek yetmez. Büyük bir dosyayı önce bölmek ya da telefon yerine masaüstü bir tarayıcı kullanmak genellikle işi halleder.
Yavaş bir mobil bağlantıda, e-posta için küçültmen gereken 40 MB’lık bir tarama düşün. Sunucu tarafı bir araç başlamadan önce 40 MB’ın tamamını yüklemek zorundadır, sonra sen sonucu indirirsin; yani beklemenin çoğu ağdır. İstemci tarafı bir araç iki aktarımı da atlar, ama sıkıştırmayı telefonun kendisi yapar ve uzun bir taramada bu biraz sürebilir. Hiçbiri her zaman daha hızlı değildir: bu, bağlantına ve cihazına bağlıdır.
Karma yapılar ve dikkatle okunması gereken iddialar
Her araç tamamen biri ya da diğeri değildir. Birkaç kalıp görürsün:
- Çoğunlukla yerel, biraz sunucu. Basit işler tarayıcıda çalışır, dönüştürme ya da metin tanıma ise yüklenir. Site geneli bir açıklama değil, araç başına bir açıklama ara.
- Şifreli yükleme. Dosya yüklenir ama aktarım sırasında ve depolanırken şifrelenir. Bu hiç yoktan iyidir, ama sunucu üzerinde çalışmak için onu yine de çözer.
- Yerel işlem, bulutta kaydetme. İş yereldir, ama sonuç daha sonra açabilmen için hesabında saklanır. Bu, tasarım gereği sunucudaki bir kopyadır.
- Masaüstü uygulamaları. Kurulu bir program da istemci tarafıdır, ama dosyaları ya da kullanım verilerini geri gönderebilir. Gizlilik politikası yine önemlidir.
Hangisini kullandığını nasıl kontrol edersin?
Tarayıcının geliştirici araçlarını aç (çoğu masaüstü tarayıcıda F12), Ağ sekmesine git ve araçtan bir test dosyası geçir. Sunucu tarafı bir araçta, başlattığında dosyanla aşağı yukarı aynı boyutta bir isteğin dışarı gittiği görülür. İstemci tarafı bir araçta yalnızca reklamlar ya da analiz sinyalleri gibi küçük istekler görülür, dosyanla birlikte büyüyen hiçbir istek görülmez. Aynı işi Wi-Fi kapalıyken yapmak, aynı testin hızlı sürümüdür.
Hangisini seçmeli?
Sözleşmeler, maaş bordroları, tıbbi yazılar ve kimlik taramaları için varsayılan olarak istemci tarafı daha iyidir: başka bir yerde sızabilecek ya da saklanabilecek bir kopya yoktur. Herkese açık bir broşür ya da bir menü için ikisi de olur. Bir tarayıcının iyi yapamadığı bir şeye ihtiyacın olduğunda, örneğin 2.000 sayfalık bir arşivde metin tanıma, açık bir saklama politikası olan saygın bir sunucu tarafı araç makul bir seçimdir; alışkanlık olarak değil, o dosya için kullanılmak kaydıyla.
Sık sorulan sorular
- Sunucu tarafı ve istemci tarafı PDF araçları arasındaki fark nedir?
- Sunucu tarafı bir araç dosyanı yükler ve işletmecinin bilgisayarlarında işler. İstemci tarafı bir araç programı tarayıcına gönderir ve dosyayı kendi cihazında işler, bu yüzden dosya hiçbir zaman yüklenmez.
- İstemci tarafı PDF işleme daha mı gizli?
- Evet, çünkü dosyanın cihazın dışında hiçbir yerde kopyası yoktur. Sunucu tarafı bir araç iyi yönetiliyor olabilir, ama dosyayı sakladığı sürece onun güvenliğine ve saklama kurallarına güveniyorsundur.
- İstemci tarafı araçlar çok büyük PDF’lerde neden zorlanır?
- Dosyanın tamamı tarayıcı sekmenin belleğine sığmak zorundadır, işlenirken çoğu zaman birden fazla kez. Telefonların ve eski dizüstü bilgisayarların ayırabileceği bellek daha azdır, bu yüzden çok büyük bir tarama yavaş olabilir ya da başarısız olabilir. Önce bölmek genellikle yardımcı olur.
- Bir site reklam yüklüyorsa yine de istemci tarafı mıdır?
- Olabilir. Reklamlar, yazı tipleri ve analiz ayrı, küçük isteklerdir. Önemli olan dosyanın içeriğinin hiç gönderilip gönderilmediğidir; bunu Ağ sekmesinde ya da çevrimdışı testiyle kontrol edebilirsin.
- Kopitiam sunucu tarafı mı, istemci tarafı mı?
- Kopitiam’ın PDF araçları istemci tarafıdır. Tarayıcı sekmenin içinde pdf.js ve pdf-lib kullanırlar, dosya hiçbir zaman yüklenmez ve sayfa yüklendikten sonra bağlantın kopsa da araçlar çalışmaya devam eder.