सर्वर-साइड बनाम क्लाइंट-साइड PDF टूल: दोनों कैसे काम करते हैं
सर्वर-साइड PDF टूल आपकी फ़ाइल को चलाने वाली कंपनी के कंप्यूटरों पर अपलोड करता है, वहाँ प्रोसेस करता है और नतीजा वापस भेजता है। क्लाइंट-साइड टूल इसके बजाय प्रोग्राम को आपके ब्राउज़र में डाउनलोड करता है, और वह प्रोग्राम फ़ाइल को आपके अपने डिवाइस पर प्रोसेस करता है। पहले मामले में आपका डॉक्यूमेंट सफ़र करता है; दूसरे में सिर्फ़ कोड।
यही एक फ़र्क तय करता है कि आपकी फ़ाइल कभी कौन देख सकता है। इसी से यह भी समझ आता है कि दोनों तरह के टूल अलग क्यों लगते हैं, अलग तरह से फ़ेल होते हैं और अलग कामों के लिए ठीक हैं। यह लेख क़दम-दर-क़दम बताता है कि दोनों में असल में क्या होता है।
सर्वर-साइड टूल में क्या होता है
- आप एक फ़ाइल चुनते हैं। पेज उसे इंटरनेट पर चलाने वाली कंपनी के सर्वर पर भेजता है, आमतौर पर HTTPS अपलोड के रूप में।
- सर्वर उसे रखता है, कम से कम काम चलने तक डिस्क या मेमोरी में, अक्सर दूसरे लोगों की फ़ाइलों के साथ एक कतार में।
- सर्वर पर कोई प्रोग्राम, जैसे PDF लाइब्रेरी, कन्वर्टर या टेक्स्ट पहचानने वाला इंजन, काम करता है।
- नतीजा भी रखा जाता है, और पेज आपको उसे डाउनलोड करने का लिंक देता है।
- दोनों फ़ाइलें बाद में, चलाने वाली कंपनी के अपने फ़ाइल रखने के नियमों के हिसाब से, डिलीट की जाती हैं।
पहले यही एकमात्र व्यावहारिक तरीका था। ब्राउज़र धीमे थे, और PDF पढ़ने और दोबारा लिखने वाली लाइब्रेरी सिर्फ़ सर्वर पर चलती थीं। आज के ब्राउज़र जटिल कोड तेज़ी से चलाते हैं, और JavaScript में लिखी ओपन-सोर्स PDF लाइब्रेरी रोज़ के ज़्यादातर काम एक टैब के अंदर कर सकती हैं।
HTTPS क़दम 1 को छिपकर सुनने वालों से बचाता है। क़दम 2 से 5 चलाने वाली कंपनी पर निर्भर हैं: उसकी सुरक्षा, उसके कर्मचारियों की पहुँच, उसके बैकअप और उस देश में उसकी क़ानूनी ज़िम्मेदारियाँ जहाँ सर्वर हैं। ज़्यादातर कंपनियाँ इसे ज़िम्मेदारी से संभालती हैं, लेकिन आप उन पर भरोसा कर रहे होते हैं।
क्लाइंट-साइड टूल में क्या होता है
- आप टूल पेज खोलते हैं। आपका ब्राउज़र पेज और उसका JavaScript डाउनलोड करता है, किसी भी वेबसाइट की तरह।
- आप एक फ़ाइल चुनते हैं। ब्राउज़र का File API उसे आपकी डिस्क से टैब की मेमोरी में पढ़ता है। कुछ भी भेजा नहीं जाता।
- टैब में चल रहा कोड काम करता है। भारी हिस्से अक्सर Web Worker में चलते हैं, जो एक बैकग्राउंड थ्रेड है, ताकि पेज अटके नहीं।
- नतीजा मेमोरी में बनता है और आपको डाउनलोड के रूप में मिलता है, एक अस्थायी लिंक के ज़रिए जो आपके अपने ब्राउज़र की मेमोरी की ओर इशारा करता है।
- टैब बंद करने पर मेमोरी ख़ाली हो जाती है। कहीं और डिलीट करने को कुछ नहीं होता, क्योंकि कुछ भेजा ही नहीं गया।
Kopitiam के PDF टूल इसी तरह काम करते हैं। पेज पढ़ने और बनाने के लिए वे Mozilla का ओपन-सोर्स PDF इंजन pdf.js इस्तेमाल करते हैं, जिसका पार्सर Web Worker में चलता है। नई PDF बनाने के लिए वे एक और ओपन-सोर्स लाइब्रेरी pdf-lib इस्तेमाल करते हैं। दोनों आपके टैब के अंदर चलते हैं।
क्लाइंट-साइड टूल ऑफ़लाइन क्यों चल सकते हैं
प्रोग्राम एक बार आपके ब्राउज़र में आ जाए, तो उसे चलने के लिए नेटवर्क की ज़रूरत नहीं होती। इसीलिए ऑफ़लाइन टेस्ट काम करता है: टूल लोड करें, Wi-Fi बंद करें, और टूल चलता रहता है। अगर वह सच में अपलोड कर रहा होता, तो तुरंत फ़ेल हो जाता।
कुछ बारीकियाँ जानने लायक हैं। Kopitiam अपने PDF इंजन का वर्कर फ़ाइल डालने पर नहीं, बल्कि टूल पेज खुलते ही शुरू कर देता है, इसलिए पेज लोड होने के बाद कनेक्शन टूट जाए तो भी टूल चलते रहते हैं। कुछ कम इस्तेमाल होने वाले फ़ीचर पहली बार इस्तेमाल पर अतिरिक्त कोड लोड करते हैं, जैसे गैर-लैटिन लिपियों के टेक्स्ट के लिए फ़ॉन्ट इंजन। यह कोड आपकी ओर आ रहा है, आपकी फ़ाइल बाहर नहीं जा रही।
क्लाइंट-साइड प्रोसेसिंग की असली सीमाएँ
काम आपके डिवाइस पर करने की अपनी क़ीमत है, और एक ईमानदार टूल को यह बताना चाहिए।
- मेमोरी। पूरी फ़ाइल टैब की मेमोरी में रहती है, प्रोसेस होते समय अक्सर एक से ज़्यादा कॉपी में। 200 MB के स्कैन को इसकी कई गुना मेमोरी चाहिए हो सकती है। ब्राउज़र हर टैब की मेमोरी सीमित रखते हैं, और फ़ोन सबसे ज़्यादा।
- रफ़्तार। काम आपका लैपटॉप या फ़ोन करता है, कोई डेटा सेंटर नहीं। 400 पेजों को इमेज में बदलना, या लंबे स्कैन की हर फ़ोटो दोबारा कंप्रेस करना, पुराने डिवाइस पर साफ़ तौर पर ज़्यादा समय लेता है।
- बैटरी और गर्मी। फ़ोन पर लंबा काम कुछ देर तक प्रोसेसर पर पूरा ज़ोर डालता है।
- मुश्किल काम। कुछ काम सर्वर सॉफ़्टवेयर से कहीं आसान होते हैं, जैसे बड़े स्कैन किए संग्रहों पर टेक्स्ट पहचानना, या जटिल Office फ़ाइलों को ठीक वैसे ही लेआउट के साथ बदलना। कई टूल जो वैसे क्लाइंट-साइड हैं, ख़ास ये काम सर्वर पर भेजते हैं।
व्यवहार में, क्लाइंट-साइड टूल की साइज़ सीमा प्राइसिंग पेज पर लिखा कोई नंबर नहीं, बल्कि आपका डिवाइस होता है। Kopitiam के कोड में फ़ाइल साइज़ की कोई सीमा नहीं है, इसलिए बहुत बड़ी फ़ाइल या तो चल जाती है या मेमोरी ख़त्म हो जाती है। बड़ी फ़ाइल को पहले बाँट लेना, या फ़ोन के बजाय डेस्कटॉप ब्राउज़र इस्तेमाल करना, आमतौर पर काम बना देता है।
मान लीजिए आपको धीमे मोबाइल कनेक्शन पर 40 MB का स्कैन ईमेल के लिए छोटा करना है। सर्वर-साइड टूल को शुरू करने से पहले पूरे 40 MB अपलोड करने पड़ते हैं, फिर आप नतीजा डाउनलोड करते हैं, इसलिए ज़्यादातर इंतज़ार नेटवर्क का होता है। क्लाइंट-साइड टूल दोनों ट्रांसफ़र छोड़ देता है, लेकिन कंप्रेस ख़ुद आपका फ़ोन करता है, जिसमें लंबे स्कैन के लिए कुछ समय लग सकता है। कोई भी हमेशा तेज़ नहीं है: यह आपके कनेक्शन और डिवाइस पर निर्भर करता है।
मिले-जुले टूल, और दावे जिन्हें ध्यान से पढ़ें
हर टूल पूरी तरह एक या दूसरा नहीं होता। आपको कुछ पैटर्न दिखेंगे:
- ज़्यादातर डिवाइस पर, कुछ सर्वर पर। आसान काम ब्राउज़र में चलते हैं, जबकि कन्वर्ज़न या टेक्स्ट पहचानने के लिए फ़ाइल अपलोड होती है। पूरी साइट के लिए एक बयान नहीं, बल्कि हर टूल का अलग बयान देखें।
- एन्क्रिप्टेड अपलोड। फ़ाइल अपलोड होती है, लेकिन रास्ते में और रखे जाने पर एन्क्रिप्टेड रहती है। यह कुछ न होने से बेहतर है, लेकिन सर्वर फिर भी उस पर काम करने के लिए उसे डिक्रिप्ट करता है।
- डिवाइस पर काम, क्लाउड में सेव। काम डिवाइस पर होता है, लेकिन नतीजा आपके अकाउंट में रखा जाता है ताकि आप उसे बाद में खोल सकें। यह जान-बूझकर रखी गई सर्वर कॉपी है।
- डेस्कटॉप ऐप। इंस्टॉल किया गया प्रोग्राम भी क्लाइंट-साइड है, लेकिन वह फ़ाइलें या इस्तेमाल का डेटा अपनी कंपनी को भेज भी सकता है। उसकी प्राइवेसी पॉलिसी फिर भी मायने रखती है।
कैसे जाँचें कि आप कौन-सा इस्तेमाल कर रहे हैं
ब्राउज़र के डेवलपर टूल खोलें (ज़्यादातर डेस्कटॉप ब्राउज़र में F12), Network टैब पर जाएँ और टूल में एक टेस्ट फ़ाइल चलाएँ। सर्वर-साइड टूल में, शुरू करते ही लगभग आपकी फ़ाइल जितनी बड़ी एक रिक्वेस्ट बाहर जाती दिखती है। क्लाइंट-साइड टूल में सिर्फ़ छोटी रिक्वेस्ट दिखती हैं, जैसे विज्ञापन या एनालिटिक्स पिंग, और कोई ऐसी नहीं जो आपकी फ़ाइल के साथ बढ़े। Wi-Fi बंद करके वही काम करना इसी टेस्ट का झटपट तरीका है।
कौन-सा चुनें
कॉन्ट्रैक्ट, सैलरी स्लिप, मेडिकल पत्रों और ID स्कैन के लिए क्लाइंट-साइड बेहतर डिफ़ॉल्ट है: कहीं और कोई कॉपी नहीं जो लीक हो या रखी जाए। सार्वजनिक ब्रोशर या मेन्यू के लिए कोई भी ठीक है। जब आपको कुछ ऐसा चाहिए जो ब्राउज़र अच्छी तरह नहीं कर पाता, जैसे 2,000 पेज के संग्रह पर टेक्स्ट पहचानना, तो साफ़ फ़ाइल रखने की पॉलिसी वाला भरोसेमंद सर्वर-साइड टूल एक ठीक विकल्प है, उस फ़ाइल के लिए, आदत के तौर पर नहीं।
अक्सर पूछे जाने वाले सवाल
- सर्वर-साइड और क्लाइंट-साइड PDF टूल में क्या फ़र्क है?
- सर्वर-साइड टूल आपकी फ़ाइल अपलोड करके चलाने वाली कंपनी के कंप्यूटरों पर प्रोसेस करता है। क्लाइंट-साइड टूल प्रोग्राम को आपके ब्राउज़र में भेजता है और फ़ाइल को आपके अपने डिवाइस पर प्रोसेस करता है, इसलिए फ़ाइल कभी अपलोड नहीं होती।
- क्या क्लाइंट-साइड PDF प्रोसेसिंग ज़्यादा प्राइवेट है?
- हाँ, क्योंकि आपके डिवाइस के अलावा कहीं भी आपकी फ़ाइल की कॉपी नहीं होती। सर्वर-साइड टूल अच्छी तरह चलाया जा सकता है, लेकिन जब तक वह फ़ाइल रखता है, आप उसकी सुरक्षा और फ़ाइल रखने के नियमों पर निर्भर रहते हैं।
- क्लाइंट-साइड टूल बहुत बड़ी PDF के साथ मुश्किल में क्यों पड़ते हैं?
- पूरी फ़ाइल को आपके ब्राउज़र टैब की मेमोरी में समाना होता है, प्रोसेस होते समय अक्सर एक से ज़्यादा बार। फ़ोन और पुराने लैपटॉप के पास कम मेमोरी होती है, इसलिए बहुत बड़ा स्कैन धीमा हो सकता है या फ़ेल हो सकता है। पहले उसे बाँट लेने से आमतौर पर मदद मिलती है।
- अगर कोई साइट विज्ञापन लोड करती है, तो क्या वह फिर भी क्लाइंट-साइड है?
- हो सकती है। विज्ञापन, फ़ॉन्ट और एनालिटिक्स अलग छोटी रिक्वेस्ट हैं। असली बात यह है कि क्या आपकी फ़ाइल का कंटेंट कभी भेजा जाता है, जिसे आप Network टैब में या ऑफ़लाइन टेस्ट से जाँच सकते हैं।
- Kopitiam सर्वर-साइड है या क्लाइंट-साइड?
- Kopitiam के PDF टूल क्लाइंट-साइड हैं। वे आपके ब्राउज़र टैब के अंदर pdf.js और pdf-lib इस्तेमाल करते हैं, फ़ाइल कभी अपलोड नहीं होती, और पेज लोड होने के बाद कनेक्शन टूट जाए तो भी टूल चलते रहते हैं।