Εργαλεία PDF server-side ή client-side: πώς λειτουργεί το καθένα
Ένα server-side εργαλείο PDF ανεβάζει το αρχείο σας στους υπολογιστές του παρόχου, το επεξεργάζεται εκεί και σας στέλνει πίσω το αποτέλεσμα. Ένα client-side εργαλείο, αντίθετα, κατεβάζει το πρόγραμμα στον browser σας, και το πρόγραμμα επεξεργάζεται το αρχείο στη δική σας συσκευή. Στην πρώτη περίπτωση ταξιδεύει το έγγραφό σας· στη δεύτερη, μόνο ο κώδικας.
Αυτή η μία διαφορά καθορίζει ποιος μπορεί ποτέ να δει το αρχείο σας. Εξηγεί επίσης γιατί τα δύο είδη εργαλείων φαίνονται διαφορετικά στη χρήση, αποτυγχάνουν με διαφορετικούς τρόπους και ταιριάζουν σε διαφορετικές δουλειές. Αυτή η επεξήγηση δείχνει βήμα βήμα τι πραγματικά συμβαίνει στο καθένα.
Τι συμβαίνει σε ένα server-side εργαλείο
- Επιλέγετε ένα αρχείο. Η σελίδα το στέλνει μέσω internet στον server του παρόχου, συνήθως ως ανέβασμα HTTPS.
- Ο server το αποθηκεύει, τουλάχιστον στον δίσκο ή στη μνήμη όσο διαρκεί η δουλειά, συχνά σε ουρά μαζί με αρχεία άλλων.
- Ένα πρόγραμμα στον server, όπως μια βιβλιοθήκη PDF, ένας μετατροπέας ή μια μηχανή αναγνώρισης κειμένου, κάνει τη δουλειά.
- Αποθηκεύεται και το αποτέλεσμα, και η σελίδα σας δίνει σύνδεσμο για να το κατεβάσετε.
- Και τα δύο αρχεία διαγράφονται αργότερα, σύμφωνα με τους κανόνες διατήρησης του ίδιου του παρόχου.
Αυτός ήταν κάποτε ο μόνος πρακτικός σχεδιασμός. Οι browsers ήταν αργοί, και οι βιβλιοθήκες που μπορούσαν να διαβάσουν και να ξαναγράψουν PDF έτρεχαν μόνο σε servers. Οι σημερινοί browsers τρέχουν σύνθετο κώδικα γρήγορα, και βιβλιοθήκες PDF ανοιχτού κώδικα γραμμένες σε JavaScript μπορούν να κάνουν τις περισσότερες καθημερινές δουλειές μέσα σε μια καρτέλα.
Το HTTPS προστατεύει το βήμα 1 από όσους παρακολουθούν. Τα βήματα 2 έως 5 εξαρτώνται από τον πάροχο: την ασφάλειά του, την πρόσβαση του προσωπικού του, τα αντίγραφα ασφαλείας του και τις νομικές του υποχρεώσεις στη χώρα όπου βρίσκονται οι servers. Οι περισσότεροι πάροχοι το χειρίζονται υπεύθυνα, αλλά εσείς τους εμπιστεύεστε ότι θα το κάνουν.
Τι συμβαίνει σε ένα client-side εργαλείο
- Ανοίγετε τη σελίδα του εργαλείου. Ο browser σας κατεβάζει τη σελίδα και τη JavaScript της, όπως σε κάθε ιστότοπο.
- Επιλέγετε ένα αρχείο. Το File API του browser το διαβάζει από τον δίσκο σας στη μνήμη της καρτέλας. Δεν στέλνεται τίποτα.
- Κώδικας που τρέχει στην καρτέλα κάνει τη δουλειά. Τα βαριά κομμάτια τρέχουν συχνά σε Web Worker, ένα νήμα στο παρασκήνιο, ώστε η σελίδα να ανταποκρίνεται.
- Το αποτέλεσμα φτιάχνεται στη μνήμη και σας δίνεται ως λήψη, μέσω ενός προσωρινού συνδέσμου που δείχνει σε μνήμη του δικού σας browser.
- Όταν κλείνετε την καρτέλα, η μνήμη απελευθερώνεται. Δεν υπάρχει τίποτα να διαγραφεί αλλού, γιατί δεν στάλθηκε τίποτα.
Τα εργαλεία PDF του Kopitiam λειτουργούν έτσι. Χρησιμοποιούν το pdf.js, τη μηχανή PDF ανοιχτού κώδικα της Mozilla, για να διαβάζουν και να σχεδιάζουν τις σελίδες, με τον αναλυτή του να τρέχει σε Web Worker. Χρησιμοποιούν το pdf-lib, μια άλλη βιβλιοθήκη ανοιχτού κώδικα, για να φτιάξουν το νέο PDF. Και τα δύο τρέχουν μέσα στην καρτέλα σας.
Γιατί τα client-side εργαλεία λειτουργούν χωρίς σύνδεση
Μόλις το πρόγραμμα βρίσκεται στον browser σας, δεν χρειάζεται το δίκτυο για να τρέξει. Γι’ αυτό λειτουργεί το τεστ χωρίς σύνδεση: φορτώνετε το εργαλείο, κλείνετε το Wi-Fi, και το εργαλείο συνεχίζει. Αν ανέβαζε πραγματικά, θα αποτύγχανε αμέσως.
Υπάρχουν λεπτομέρειες που αξίζει να ξέρετε. Το Kopitiam ξεκινά τον worker της μηχανής PDF μόλις ανοίξει μια σελίδα εργαλείου, και όχι όταν αφήνετε ένα αρχείο, ώστε τα εργαλεία να συνεχίζουν να λειτουργούν αν πέσει η σύνδεση αφού φορτώσει η σελίδα. Κάποιες λιγότερο συνηθισμένες λειτουργίες φορτώνουν επιπλέον κώδικα την πρώτη φορά που τις χρησιμοποιείτε, όπως τη μηχανή γραμματοσειρών για κείμενο σε μη λατινικά αλφάβητα. Αυτό είναι κώδικας που έρχεται σε εσάς, όχι το αρχείο σας που φεύγει.
Τα πραγματικά όρια της client-side επεξεργασίας
Η δουλειά στη συσκευή σας έχει κόστος, και ένα τίμιο εργαλείο πρέπει να σας το λέει.
- Μνήμη. Ολόκληρο το αρχείο βρίσκεται στη μνήμη της καρτέλας, συχνά σε περισσότερα από ένα αντίγραφα όσο επεξεργάζεται. Μια σάρωση 200 MB μπορεί να χρειαστεί αρκετές φορές αυτό το μέγεθος. Οι browsers βάζουν όριο μνήμης ανά καρτέλα, και τα κινητά το πιο αυστηρό.
- Ταχύτητα. Τη δουλειά την κάνει το laptop ή το κινητό σας, όχι ένα κέντρο δεδομένων. Η απόδοση 400 σελίδων σε εικόνες, ή η επανασυμπίεση κάθε φωτογραφίας σε μια μεγάλη σάρωση, παίρνει αισθητά περισσότερο σε μια παλιότερη συσκευή.
- Μπαταρία και θερμότητα. Μια μεγάλη δουλειά σε κινητό ζορίζει τον επεξεργαστή για αρκετή ώρα.
- Δύσκολες δουλειές. Κάποιες εργασίες είναι πολύ ευκολότερες με λογισμικό server, όπως η αναγνώριση κειμένου σε μεγάλα αρχεία σαρώσεων ή η μετατροπή σύνθετων αρχείων Office με ακριβή διάταξη. Πολλά εργαλεία που κατά τα άλλα είναι client-side στέλνουν αυτές τις συγκεκριμένες δουλειές σε server.
Στην πράξη, το όριο μεγέθους σε ένα client-side εργαλείο είναι η συσκευή σας και όχι ένας αριθμός σε σελίδα τιμών. Το Kopitiam δεν έχει όριο μεγέθους αρχείου στον κώδικά του, οπότε ένα πολύ μεγάλο αρχείο είτε λειτουργεί είτε εξαντλεί τη μνήμη. Αν χωρίσετε πρώτα ένα μεγάλο αρχείο, ή χρησιμοποιήσετε browser υπολογιστή αντί για κινητό, συνήθως περνάει.
Πάρτε μια σάρωση 40 MB που πρέπει να μικρύνετε για email, με αργή σύνδεση κινητού. Ένα server-side εργαλείο πρέπει να ανεβάσει και τα 40 MB πριν ξεκινήσει, και μετά κατεβάζετε το αποτέλεσμα, οπότε το μεγαλύτερο μέρος της αναμονής είναι το δίκτυο. Ένα client-side εργαλείο παρακάμπτει και τις δύο μεταφορές, αλλά τη συμπίεση την κάνει το ίδιο το κινητό σας, κάτι που μπορεί να πάρει λίγη ώρα για μια μεγάλη σάρωση. Κανένα δεν είναι πάντα γρηγορότερο: εξαρτάται από τη σύνδεση και τη συσκευή σας.
Υβριδικά εργαλεία, και ισχυρισμοί που θέλουν προσεκτικό διάβασμα
Δεν είναι κάθε εργαλείο καθαρά το ένα ή το άλλο. Θα δείτε μερικά μοτίβα:
- Κυρίως τοπικά, κάποια στον server. Οι απλές δουλειές τρέχουν στον browser, ενώ η μετατροπή ή η αναγνώριση κειμένου ανεβαίνει. Ψάξτε για δήλωση ανά εργαλείο, όχι για μια δήλωση για όλο τον ιστότοπο.
- Κρυπτογραφημένο ανέβασμα. Το αρχείο ανεβαίνει, αλλά κρυπτογραφημένο κατά τη μεταφορά και την αποθήκευση. Είναι καλύτερο από το τίποτα, αλλά ο server το αποκρυπτογραφεί πάλι για να δουλέψει πάνω του.
- Τοπικά με αποθήκευση στο cloud. Η δουλειά γίνεται τοπικά, αλλά το αποτέλεσμα αποθηκεύεται στον λογαριασμό σας για να το ανοίξετε αργότερα. Αυτό είναι αντίγραφο σε server, εκ σχεδιασμού.
- Εφαρμογές υπολογιστή. Ένα εγκατεστημένο πρόγραμμα είναι κι αυτό client-side, αλλά μπορεί επίσης να στέλνει αρχεία ή δεδομένα χρήσης πίσω στην εταιρεία. Η πολιτική απορρήτου του εξακολουθεί να μετράει.
Πώς να ελέγξετε ποιο από τα δύο χρησιμοποιείτε
Ανοίξτε τα εργαλεία προγραμματιστή του browser (F12 στους περισσότερους browsers υπολογιστή), πηγαίνετε στην καρτέλα Network και περάστε ένα δοκιμαστικό αρχείο από το εργαλείο. Ένα server-side εργαλείο δείχνει ένα αίτημα περίπου στο μέγεθος του αρχείου σας να φεύγει όταν ξεκινάτε. Ένα client-side εργαλείο δείχνει μόνο μικρά αιτήματα, όπως διαφημίσεις ή μηνύματα analytics, και κανένα που μεγαλώνει μαζί με το αρχείο σας. Η ίδια δουλειά με κλειστό το Wi-Fi είναι η γρήγορη εκδοχή του ίδιου τεστ.
Ποιο να διαλέξετε
Για συμβόλαια, εκκαθαριστικά μισθοδοσίας, ιατρικές επιστολές και σαρώσεις ταυτότητας, το client-side είναι η καλύτερη προεπιλογή: δεν υπάρχει αντίγραφο αλλού για να διαρρεύσει ή να κρατηθεί. Για ένα δημόσιο φυλλάδιο ή έναν κατάλογο, οποιοδήποτε κάνει. Όταν χρειάζεστε κάτι που ένας browser δεν κάνει καλά, όπως αναγνώριση κειμένου σε ένα αρχείο 2.000 σελίδων, ένα αξιόπιστο server-side εργαλείο με σαφή πολιτική διατήρησης είναι λογική επιλογή, για εκείνο το αρχείο και όχι ως συνήθεια.
Συχνές ερωτήσεις
- Ποια είναι η διαφορά ανάμεσα στα server-side και τα client-side εργαλεία PDF;
- Ένα server-side εργαλείο ανεβάζει το αρχείο σας και το επεξεργάζεται στους υπολογιστές του παρόχου. Ένα client-side εργαλείο στέλνει το πρόγραμμα στον browser σας και επεξεργάζεται το αρχείο στη δική σας συσκευή, οπότε το αρχείο δεν ανεβαίνει ποτέ.
- Είναι πιο ιδιωτική η client-side επεξεργασία PDF;
- Ναι, γιατί δεν υπάρχει αντίγραφο του αρχείου σας πουθενά εκτός από τη συσκευή σας. Ένα server-side εργαλείο μπορεί να λειτουργεί σωστά, αλλά βασίζεστε στην ασφάλεια και στους κανόνες διατήρησής του για όσο κρατά το αρχείο.
- Γιατί τα client-side εργαλεία δυσκολεύονται με πολύ μεγάλα PDF;
- Ολόκληρο το αρχείο πρέπει να χωρέσει στη μνήμη της καρτέλας του browser, συχνά περισσότερες από μία φορές όσο επεξεργάζεται. Τα κινητά και τα παλιότερα laptop έχουν λιγότερη διαθέσιμη, οπότε μια πολύ μεγάλη σάρωση μπορεί να αργήσει ή να αποτύχει. Αν τη χωρίσετε πρώτα, συνήθως βοηθά.
- Αν ένας ιστότοπος φορτώνει διαφημίσεις, είναι ακόμη client-side;
- Μπορεί να είναι. Οι διαφημίσεις, οι γραμματοσειρές και τα analytics είναι ξεχωριστά μικρά αιτήματα. Αυτό που μετράει είναι αν στέλνεται ποτέ το περιεχόμενο του αρχείου σας, κάτι που μπορείτε να ελέγξετε στην καρτέλα Network ή με το τεστ χωρίς σύνδεση.
- Το Kopitiam είναι server-side ή client-side;
- Τα εργαλεία PDF του Kopitiam είναι client-side. Χρησιμοποιούν το pdf.js και το pdf-lib μέσα στην καρτέλα του browser σας, το αρχείο δεν ανεβαίνει ποτέ, και τα εργαλεία συνεχίζουν να λειτουργούν αν πέσει η σύνδεσή σας αφού φορτώσει η σελίδα.