Un outil PDF côté serveur envoie votre fichier sur les ordinateurs de l’exploitant, le traite là-bas et vous renvoie le résultat. Un outil côté client fait l’inverse : il télécharge le programme dans votre navigateur, et ce programme traite le fichier sur votre propre appareil. Dans le premier cas, c’est votre document qui voyage ; dans le second, seul le code voyage.

Cette seule différence décide de qui pourra un jour voir votre fichier. Elle explique aussi pourquoi les deux types d’outils ne donnent pas la même impression, ne tombent pas en panne de la même façon et ne conviennent pas aux mêmes tâches. Cet article explique, étape par étape, ce qui se passe vraiment dans chacun.

Ce qui se passe dans un outil côté serveur

  1. Vous choisissez un fichier. La page l’envoie par Internet au serveur de l’exploitant, en général par un envoi HTTPS.
  2. Le serveur le stocke, au minimum sur disque ou en mémoire le temps du traitement, souvent dans une file d’attente avec les fichiers d’autres personnes.
  3. Un programme sur le serveur fait le travail : une bibliothèque PDF, un convertisseur ou un moteur de reconnaissance de texte, par exemple.
  4. Le résultat est stocké lui aussi, et la page vous donne un lien pour le télécharger.
  5. Les deux fichiers sont supprimés plus tard, selon les règles de conservation propres à l’exploitant.

C’était autrefois la seule conception réaliste. Les navigateurs étaient lents, et les bibliothèques capables de lire et de réécrire des PDF ne tournaient que sur des serveurs. Les navigateurs d’aujourd’hui exécutent rapidement du code complexe, et des bibliothèques PDF open source écrites en JavaScript savent faire la plupart des tâches courantes dans un onglet.

Le HTTPS protège l’étape 1 contre les écoutes. Les étapes 2 à 5 dépendent de l’exploitant : sa sécurité, l’accès de son personnel, ses sauvegardes et ses obligations légales dans le pays où se trouvent les serveurs. La plupart des exploitants s’en occupent de façon responsable, mais vous leur faites confiance pour cela.

Ce qui se passe dans un outil côté client

  1. Vous ouvrez la page de l’outil. Votre navigateur télécharge la page et son JavaScript, comme pour n’importe quel site.
  2. Vous choisissez un fichier. L’API File du navigateur le lit depuis votre disque et le place dans la mémoire de l’onglet. Rien n’est envoyé.
  3. Le code qui tourne dans l’onglet fait le travail. Les parties lourdes tournent souvent dans un Web Worker, un fil d’exécution en arrière-plan, pour que la page reste réactive.
  4. Le résultat est construit en mémoire et vous est remis sous forme de téléchargement, via un lien temporaire qui pointe vers la mémoire de votre propre navigateur.
  5. Quand vous fermez l’onglet, la mémoire est libérée. Il n’y a rien à supprimer ailleurs, puisque rien n’a été envoyé.

Les outils PDF de Kopitiam fonctionnent ainsi. Ils utilisent pdf.js, le moteur PDF open source de Mozilla, pour lire et dessiner les pages, avec son analyseur qui tourne dans un Web Worker. Ils utilisent pdf-lib, une autre bibliothèque open source, pour construire le nouveau PDF. Les deux tournent dans votre onglet.

Côté client ne veut pas dire que la page ne fait aucune requête réseau. Elle charge quand même du code, des polices et, sur un site gratuit, des publicités. Ce qui compte, c’est que les octets de votre fichier ne fassent jamais partie d’une requête.

Pourquoi les outils côté client peuvent marcher hors ligne

Une fois le programme dans votre navigateur, il n’a plus besoin du réseau pour tourner. C’est pour cela que le test hors ligne fonctionne : chargez l’outil, coupez le Wi-Fi, et l’outil continue. S’il envoyait vraiment votre fichier, il échouerait tout de suite.

Quelques détails méritent d’être connus. Kopitiam démarre le worker de son moteur PDF dès qu’une page d’outil s’ouvre, plutôt qu’au moment où vous déposez un fichier : les outils continuent donc de fonctionner si la connexion coupe une fois la page chargée. Certaines fonctions moins courantes chargent du code supplémentaire la première fois que vous les utilisez, comme le moteur de polices pour le texte en écriture non latine. C’est du code qui vient vers vous, pas votre fichier qui part.

Les vraies limites du traitement côté client

Faire le travail sur votre appareil a un coût, et un outil honnête doit vous le dire.

  • La mémoire. Le fichier entier se trouve dans la mémoire de l’onglet, souvent en plusieurs exemplaires pendant le traitement. Un scan de 200 Mo peut en demander plusieurs fois plus. Les navigateurs limitent la mémoire par onglet, et les téléphones encore plus.
  • La vitesse. C’est votre ordinateur portable ou votre téléphone qui travaille, pas un centre de données. Transformer 400 pages en images, ou recompresser chaque photo d’un long scan, prend nettement plus de temps sur un appareil ancien.
  • La batterie et la chauffe. Une longue tâche sur un téléphone fait tourner le processeur à fond pendant un moment.
  • Les tâches difficiles. Certaines tâches sont bien plus simples avec un logiciel serveur, comme la reconnaissance de texte sur de grosses archives scannées, ou la conversion de fichiers Office complexes avec une mise en page exacte. Beaucoup d’outils par ailleurs côté client envoient ces tâches-là à un serveur.

En pratique, la limite de taille d’un outil côté client, c’est votre appareil plutôt qu’un chiffre sur une page de tarifs. Kopitiam n’a aucune limite de taille de fichier dans son code : un très gros fichier fonctionne, ou bien la mémoire vient à manquer. Diviser d’abord un gros fichier, ou utiliser un navigateur sur ordinateur plutôt qu’un téléphone, permet en général d’y arriver.

Prenons un scan de 40 Mo à alléger pour un e-mail, sur une connexion mobile lente. Un outil côté serveur doit envoyer les 40 Mo avant de pouvoir commencer, puis vous téléchargez le résultat : l’essentiel de l’attente vient du réseau. Un outil côté client évite ces deux transferts, mais c’est votre téléphone qui compresse, ce qui peut prendre un moment pour un long scan. Aucun des deux n’est toujours plus rapide : cela dépend de votre connexion et de votre appareil.

Les hybrides, et les promesses à lire de près

Tous les outils ne sont pas purement l’un ou l’autre. Vous croiserez quelques schémas :

  • Surtout local, un peu de serveur. Les tâches simples tournent dans le navigateur, alors que la conversion ou la reconnaissance de texte sont envoyées en ligne. Cherchez une indication outil par outil, pas une promesse pour tout le site.
  • Envoi chiffré. Le fichier est envoyé, mais chiffré pendant le transfert et pendant le stockage. C’est mieux que rien, mais le serveur le déchiffre quand même pour le traiter.
  • Local avec sauvegarde dans le cloud. Le travail est local, mais le résultat est stocké dans votre compte pour que vous puissiez le rouvrir plus tard. C’est une copie sur serveur, par conception.
  • Applications de bureau. Un programme installé est lui aussi côté client, mais il peut aussi envoyer des fichiers ou des données d’usage à son éditeur. Sa politique de confidentialité compte toujours.

Comment savoir lequel vous utilisez

Ouvrez les outils de développement du navigateur (F12 sur la plupart des navigateurs pour ordinateur), allez dans l’onglet Réseau et faites passer un fichier de test dans l’outil. Un outil côté serveur montre une requête à peu près de la taille de votre fichier qui part au démarrage. Un outil côté client ne montre que de petites requêtes, comme des publicités ou des signaux de statistiques, et aucune qui grossit avec votre fichier. Faire la même tâche avec le Wi-Fi coupé est la version rapide du même test.

Lequel choisir

Pour les contrats, les fiches de paie, les courriers médicaux et les scans de pièces d’identité, le côté client est le meilleur choix par défaut : il n’existe aucune copie ailleurs qui puisse fuiter ou être conservée. Pour une brochure publique ou un menu, les deux conviennent. Quand vous avez besoin de quelque chose qu’un navigateur fait mal, comme la reconnaissance de texte sur une archive de 2 000 pages, un outil côté serveur sérieux avec une politique de conservation claire est un choix raisonnable, pour ce fichier-là et pas par habitude.