Alat PDF sisi server mengunggah file Anda ke komputer milik pengelolanya, memprosesnya di sana, lalu mengirim hasilnya kembali. Alat sisi klien justru mengunduh programnya ke browser Anda, dan program itu memproses file di perangkat Anda sendiri. Pada yang pertama, dokumen Anda yang berpindah; pada yang kedua, hanya kodenya.

Satu perbedaan itu menentukan siapa yang bisa melihat file Anda. Perbedaan itu juga menjelaskan kenapa kedua jenis alat terasa berbeda, gagal dengan cara berbeda, dan cocok untuk pekerjaan yang berbeda. Penjelasan ini menguraikan apa yang sebenarnya terjadi pada masing-masing, langkah demi langkah.

Apa yang terjadi di alat sisi server

  1. Anda memilih file. Halaman mengirimnya lewat internet ke server pengelola, biasanya sebagai unggahan HTTPS.
  2. Server menyimpannya, setidaknya di disk atau di memori selama pekerjaan berlangsung, sering dalam antrean bersama file milik orang lain.
  3. Program di server, seperti library PDF, konverter, atau mesin pengenalan teks, mengerjakannya.
  4. Hasilnya juga disimpan, dan halaman memberi Anda tautan untuk mengunduhnya.
  5. Kedua file dihapus kemudian, sesuai aturan penyimpanan milik pengelola sendiri.

Dulu ini satu-satunya rancangan yang praktis. Browser masih lambat, dan library yang bisa membaca dan menulis ulang PDF hanya berjalan di server. Browser masa kini menjalankan kode yang rumit dengan cepat, dan library PDF open source yang ditulis dalam JavaScript bisa menangani sebagian besar pekerjaan sehari-hari di dalam sebuah tab.

HTTPS melindungi langkah 1 dari penyadap. Langkah 2 sampai 5 bergantung pada pengelola: keamanan mereka, akses staf mereka, cadangan mereka, dan kewajiban hukum mereka di negara tempat server berada. Kebanyakan pengelola menanganinya dengan bertanggung jawab, tetapi Anda memercayakan hal itu kepada mereka.

Apa yang terjadi di alat sisi klien

  1. Anda membuka halaman alat. Browser Anda mengunduh halaman dan JavaScript-nya, sama seperti situs web lainnya.
  2. Anda memilih file. File API milik browser membacanya dari disk Anda ke memori tab. Tidak ada yang dikirim.
  3. Kode yang berjalan di tab mengerjakannya. Bagian yang berat sering berjalan di Web Worker, yaitu thread latar belakang, sehingga halaman tetap responsif.
  4. Hasilnya dibangun di memori dan diberikan kepada Anda sebagai unduhan, lewat tautan sementara yang menunjuk ke memori di browser Anda sendiri.
  5. Saat Anda menutup tab, memorinya dilepaskan. Tidak ada yang perlu dihapus di tempat lain, karena tidak ada yang dikirim.

Alat PDF Kopitiam bekerja dengan cara ini. Alat-alat ini memakai pdf.js, mesin PDF open source dari Mozilla, untuk membaca dan menggambar halaman, dengan parser-nya berjalan di Web Worker. Alat-alat ini memakai pdf-lib, library open source lainnya, untuk membangun PDF baru. Keduanya berjalan di dalam tab Anda.

Sisi klien tidak berarti halaman tidak membuat permintaan jaringan sama sekali. Halaman tetap memuat kode, font, dan, di situs gratis, iklan. Yang penting, isi file Anda tidak pernah menjadi bagian dari permintaan apa pun.

Kenapa alat sisi klien bisa bekerja offline

Begitu program sudah ada di browser Anda, ia tidak butuh jaringan untuk berjalan. Itulah sebabnya uji offline berhasil: muat alatnya, matikan Wi-Fi, dan alatnya tetap bekerja. Jika alat itu benar-benar mengunggah, ia akan langsung gagal.

Ada beberapa detail yang perlu diketahui. Kopitiam menjalankan worker mesin PDF-nya begitu halaman alat dibuka, bukan saat Anda memasukkan file, sehingga alat tetap bekerja jika koneksi terputus setelah halaman dimuat. Beberapa fitur yang jarang dipakai memuat kode tambahan saat pertama kali digunakan, seperti mesin font untuk teks dalam aksara non-Latin. Itu kode yang datang kepada Anda, bukan file Anda yang keluar.

Batasan nyata pemrosesan sisi klien

Mengerjakan semuanya di perangkat Anda ada harganya, dan alat yang jujur semestinya memberi tahu Anda.

  • Memori. Seluruh file berada di memori tab, sering dalam lebih dari satu salinan selama diproses. Hasil scan 200 MB bisa butuh beberapa kali lipat dari itu. Browser membatasi memori per tab, dan ponsel membatasinya paling ketat.
  • Kecepatan. Laptop atau ponsel Anda yang bekerja, bukan pusat data. Merender 400 halaman menjadi gambar, atau mengompres ulang setiap foto dalam hasil scan yang panjang, terasa jauh lebih lama di perangkat yang lebih tua.
  • Baterai dan panas. Pekerjaan panjang di ponsel membuat prosesor bekerja keras untuk sementara waktu.
  • Pekerjaan yang sulit. Beberapa tugas jauh lebih mudah dengan perangkat lunak server, seperti pengenalan teks pada arsip scan yang besar, atau konversi file Office yang rumit dengan tata letak persis. Banyak alat yang selebihnya sisi klien mengirim pekerjaan tertentu itu ke server.

Dalam praktiknya, batas ukuran pada alat sisi klien adalah perangkat Anda, bukan angka di halaman harga. Kopitiam tidak punya batas ukuran file di kodenya, jadi file yang sangat besar akan berhasil atau kehabisan memori. Memisah file besar terlebih dahulu, atau memakai browser desktop alih-alih ponsel, biasanya membuatnya berhasil.

Ambil contoh hasil scan 40 MB yang perlu Anda perkecil untuk email, dengan koneksi seluler yang lambat. Alat sisi server harus mengunggah seluruh 40 MB sebelum bisa mulai, lalu Anda mengunduh hasilnya, jadi sebagian besar waktu tunggu habis di jaringan. Alat sisi klien melewati kedua transfer itu, tetapi ponsel Anda sendiri yang mengompres, dan itu bisa memakan waktu untuk hasil scan yang panjang. Tidak ada yang selalu lebih cepat: tergantung koneksi dan perangkat Anda.

Hibrida, dan klaim yang perlu dibaca dengan cermat

Tidak setiap alat murni salah satunya. Anda akan menemui beberapa pola:

  • Sebagian besar lokal, sebagian server. Pekerjaan sederhana berjalan di browser sementara konversi atau pengenalan teks diunggah. Cari pernyataan per alat, bukan pernyataan untuk seluruh situs.
  • Unggahan terenkripsi. File diunggah tetapi dienkripsi saat dikirim dan saat disimpan. Itu lebih baik daripada tidak sama sekali, tetapi server tetap mendekripsinya untuk mengerjakannya.
  • Lokal dengan penyimpanan cloud. Pekerjaannya lokal, tetapi hasilnya disimpan di akun Anda agar bisa dibuka nanti. Itu salinan di server, memang sengaja dirancang begitu.
  • Aplikasi desktop. Program yang terpasang juga termasuk sisi klien, tetapi ia juga bisa mengirim file atau data penggunaan ke pembuatnya. Kebijakan privasinya tetap penting.

Cara memeriksa mana yang sedang Anda pakai

Buka developer tools di browser (F12 di kebanyakan browser desktop), masuk ke tab Network, lalu jalankan file uji lewat alat tersebut. Alat sisi server menampilkan permintaan yang ukurannya kira-kira sama dengan file Anda keluar saat Anda mulai. Alat sisi klien hanya menampilkan permintaan kecil, seperti iklan atau ping analitik, dan tidak ada yang membesar mengikuti file Anda. Melakukan pekerjaan yang sama dengan Wi-Fi mati adalah versi cepat dari uji yang sama.

Mana yang dipilih

Untuk kontrak, slip gaji, surat medis, dan scan identitas, sisi klien adalah pilihan bawaan yang lebih baik: tidak ada salinan di tempat lain yang bisa bocor atau disimpan. Untuk brosur publik atau menu, keduanya tidak masalah. Ketika Anda butuh sesuatu yang tidak bisa dikerjakan browser dengan baik, seperti pengenalan teks pada arsip 2.000 halaman, alat sisi server yang bereputasi baik dengan kebijakan penyimpanan yang jelas adalah pilihan yang wajar, dipakai untuk file itu saja dan bukan sebagai kebiasaan.