PDF-tools op de server of in de browser: zo werken ze
Een server-side PDF-tool uploadt je bestand naar de computers van de aanbieder, verwerkt het daar en stuurt het resultaat terug. Een client-side tool downloadt in plaats daarvan het programma naar je browser, en dat programma verwerkt het bestand op je eigen apparaat. In het eerste geval reist je document; in het tweede reist alleen code.
Dat ene verschil bepaalt wie je bestand ooit kan zien. Het verklaart ook waarom de twee soorten tools anders aanvoelen, op andere manieren vastlopen en bij andere klussen passen. Deze uitleg loopt stap voor stap door wat er bij elk echt gebeurt.
Wat er gebeurt in een server-side tool
- Je kiest een bestand. De pagina stuurt het via internet naar de server van de aanbieder, meestal als HTTPS-upload.
- De server slaat het op, op zijn minst op schijf of in het geheugen zolang de klus duurt, vaak in een wachtrij met bestanden van anderen.
- Een programma op de server, zoals een PDF-bibliotheek, een converter of een engine voor tekstherkenning, doet het werk.
- Het resultaat wordt ook opgeslagen, en de pagina geeft je een link om het te downloaden.
- Beide bestanden worden later verwijderd, volgens de eigen bewaarregels van de aanbieder.
Vroeger was dit het enige praktische ontwerp. Browsers waren traag, en bibliotheken die PDF’s konden lezen en herschrijven, draaiden alleen op servers. De browsers van nu voeren ingewikkelde code snel uit, en opensource-PDF-bibliotheken in JavaScript kunnen de meeste alledaagse klussen in een tabblad doen.
HTTPS beschermt stap 1 tegen afluisteraars. Stap 2 tot 5 hangen af van de aanbieder: hun beveiliging, de toegang van hun personeel, hun back-ups en hun wettelijke verplichtingen in het land waar de servers staan. De meeste aanbieders gaan hier verantwoord mee om, maar je vertrouwt erop dat ze dat doen.
Wat er gebeurt in een client-side tool
- Je opent de toolpagina. Je browser downloadt de pagina en de JavaScript ervan, net als bij elke website.
- Je kiest een bestand. De File API van de browser leest het van je schijf in het geheugen van het tabblad. Er wordt niets verstuurd.
- Code die in het tabblad draait, doet het werk. Zware onderdelen draaien vaak in een Web Worker, een achtergrondproces, zodat de pagina blijft reageren.
- Het resultaat wordt in het geheugen opgebouwd en aan je gegeven als download, via een tijdelijke link die naar geheugen in je eigen browser wijst.
- Sluit je het tabblad, dan wordt het geheugen vrijgegeven. Elders hoeft niets verwijderd te worden, want er is niets verstuurd.
De PDF-tools van Kopitiam werken zo. Ze gebruiken pdf.js, de opensource-PDF-engine van Mozilla, om pagina’s te lezen en te tekenen, met de parser in een Web Worker. Ze gebruiken pdf-lib, een andere opensource-bibliotheek, om de nieuwe PDF op te bouwen. Beide draaien in je tabblad.
Waarom client-side tools offline kunnen werken
Staat het programma eenmaal in je browser, dan heeft het het netwerk niet nodig om te draaien. Daarom werkt de offlinetest: laad de tool, zet wifi uit, en de tool gaat gewoon door. Zou hij echt uploaden, dan zou hij meteen vastlopen.
Er zijn details die je goed kunt weten. Kopitiam start de worker van zijn PDF-engine zodra een toolpagina opent, niet pas als je een bestand erin sleept, dus de tools blijven werken als de verbinding wegvalt nadat de pagina geladen is. Sommige minder gebruikte functies laden extra code de eerste keer dat je ze gebruikt, zoals de lettertype-engine voor tekst in niet-Latijnse schriften. Dat is code die naar jou toe komt, niet je bestand dat naar buiten gaat.
De echte grenzen van verwerken in de browser
Het werk op je apparaat doen heeft een prijs, en een eerlijke tool hoort je daarover te vertellen.
- Geheugen. Het hele bestand staat in het geheugen van het tabblad, vaak in meer dan één kopie terwijl het verwerkt wordt. Een scan van 200 MB kan daar een veelvoud van nodig hebben. Browsers begrenzen het geheugen per tabblad, en telefoons het strengst.
- Snelheid. Je laptop of telefoon doet het werk, geen datacenter. 400 pagina’s omzetten naar afbeeldingen, of elke foto in een lange scan opnieuw comprimeren, duurt op een ouder apparaat merkbaar langer.
- Batterij en warmte. Een lange klus op een telefoon laat de processor een tijd hard werken.
- Zware klussen. Sommige taken zijn veel makkelijker met serversoftware, zoals tekstherkenning op grote gescande archieven, of ingewikkelde Office-bestanden omzetten met exact dezelfde opmaak. Veel tools die verder client-side zijn, sturen juist die klussen naar een server.
In de praktijk is de groottegrens van een client-side tool je apparaat, niet een getal op een prijspagina. Kopitiam heeft geen limiet voor de bestandsgrootte in zijn code, dus een heel groot bestand werkt of het geheugen raakt op. Een groot bestand eerst splitsen, of een desktopbrowser gebruiken in plaats van een telefoon, helpt meestal.
Neem een scan van 40 MB die je moet verkleinen om te mailen, op een trage mobiele verbinding. Een server-side tool moet eerst alle 40 MB uploaden voordat hij kan beginnen, daarna download je het resultaat, dus het meeste wachten is het netwerk. Een client-side tool slaat beide overdrachten over, maar je telefoon doet het comprimeren zelf, en dat kan bij een lange scan even duren. Geen van beide is altijd sneller: het hangt af van je verbinding en je apparaat.
Mengvormen, en beweringen die je goed moet lezen
Niet elke tool is puur het een of het ander. Je ziet een paar patronen:
- Grotendeels lokaal, deels server. Eenvoudige klussen draaien in de browser, terwijl omzetten of tekstherkenning wordt geüpload. Zoek naar een verklaring per tool, niet voor de hele site.
- Versleutelde upload. Het bestand wordt geüpload, maar versleuteld tijdens het transport en in opslag. Dat is beter dan niets, maar de server ontsleutelt het nog steeds om ermee te werken.
- Lokaal met opslaan in de cloud. Het werk is lokaal, maar het resultaat wordt in je account bewaard zodat je het later kunt openen. Dat is een kopie op een server, met opzet.
- Desktopapps. Een geïnstalleerd programma is ook client-side, maar het kan ook bestanden of gebruiksgegevens naar huis sturen. Het privacybeleid blijft dus belangrijk.
Zo controleer je welke je gebruikt
Open de ontwikkelaarstools van de browser (F12 in de meeste desktopbrowsers), ga naar het tabblad Netwerk en haal een testbestand door de tool. Een server-side tool toont een uitgaand verzoek van ongeveer de grootte van je bestand zodra je begint. Een client-side tool toont alleen kleine verzoeken, zoals advertenties of analytics-pings, en geen enkel verzoek dat meegroeit met je bestand. Dezelfde klus doen met wifi uit is de snelle versie van dezelfde test.
Welke kies je?
Voor contracten, loonstroken, medische brieven en ID-scans is client-side de betere standaardkeuze: er is elders geen kopie die kan uitlekken of bewaard kan worden. Voor een openbare brochure of een menukaart is beide prima. Heb je iets nodig wat een browser niet goed kan, zoals tekstherkenning op een archief van 2.000 pagina’s, dan is een betrouwbare server-side tool met een duidelijk bewaarbeleid een redelijke keuze, voor dat ene bestand en niet als gewoonte.
Veelgestelde vragen
- Wat is het verschil tussen server-side en client-side PDF-tools?
- Een server-side tool uploadt je bestand en verwerkt het op de computers van de aanbieder. Een client-side tool stuurt het programma naar je browser en verwerkt het bestand op je eigen apparaat, dus het bestand wordt nooit geüpload.
- Is PDF-verwerking in de browser privacyvriendelijker?
- Ja, omdat er nergens een kopie van je bestand is behalve op je apparaat. Een server-side tool kan goed beheerd worden, maar je bent afhankelijk van zijn beveiliging en bewaarregels zolang hij het bestand bewaart.
- Waarom hebben client-side tools moeite met heel grote PDF’s?
- Het hele bestand moet in het geheugen van je browsertabblad passen, vaak meer dan eens terwijl het verwerkt wordt. Telefoons en oudere laptops hebben minder over, dus een heel grote scan kan traag zijn of mislukken. Hem eerst splitsen helpt meestal.
- Als een site advertenties laadt, is hij dan nog client-side?
- Dat kan. Advertenties, lettertypen en analytics zijn aparte kleine verzoeken. Waar het om gaat, is of de inhoud van je bestand ooit wordt verstuurd, en dat kun je controleren in het tabblad Netwerk of met de offlinetest.
- Is Kopitiam server-side of client-side?
- De PDF-tools van Kopitiam zijn client-side. Ze gebruiken pdf.js en pdf-lib in je browsertabblad, het bestand wordt nooit geüpload en de tools blijven werken als je verbinding wegvalt nadat de pagina geladen is.