GZIP कम्प्रेशन क्या है?
GZIP RFC 1952 द्वारा परिभाषित एक हानिरहित फ़ाइल संपीड़न प्रारूप है। यह DEFLATE एल्गोरिथम (RFC 1951) द्वारा उत्पादित पेलोड को लपेटता है, जो दोहराव वाले डेटा को संक्षिप्त बाइट स्ट्रीम में सिकोड़ने के लिए LZ77 बैक-संदर्भों को हफ़मैन कोडिंग के साथ जोड़ता है।
GZIP कम्प्रेशन कैसे काम करता है?
आपका इनपुट मूल CompressionStream('gzip') API का उपयोग करके पूरी तरह से आपके ब्राउज़र में संसाधित होता है। उच्च-स्तरीय चरण हैं:
- टूल आपके टेक्स्ट या फ़ाइल को बाइट्स की एक स्ट्रीम में बदल देता है (टेक्स्ट इनपुट के लिए UTF-8)।
- उन बाइट्स को
gzipप्रारूप के लिए कॉन्फ़िगर किए गएCompressionStreamके माध्यम से पारित किया जाता है। - ब्राउज़र DEFLATE लागू करता है: एक स्लाइडिंग-विंडो LZ77 पास दोहराए जाने वाले अनुक्रमों को खोजता है, और हफ़मैन कोडिंग सामान्य प्रतीकों को छोटे कोड आवंटित करती है।
- DEFLATE पेलोड के चारों ओर एक 10-बाइट gzip हेडर और एक 8-बाइट फ़ुटर (मूल डेटा का CRC32 और मूल लंबाई मॉड्यूलो 2^32) लपेटे जाते हैं, जिससे एक मानक .gz कंटेनर बनता है।
- टेक्स्ट इनपुट के लिए परिणाम Base64 या hex के रूप में प्रदर्शित किया जाता है, या बाइनरी इनपुट के लिए डाउनलोड करने योग्य .gz फ़ाइल के रूप में पेश किया जाता है।
GZIP से कम्प्रेस क्यों करें?
- छोटे पेलोड: टेक्स्ट, JSON, HTML, CSS और स्रोत कोड आमतौर पर अपने मूल आकार के एक छोटे हिस्से में सिकुड़ जाते हैं।
- उद्योग मानक: GZIP को वस्तुतः हर HTTP सर्वर, CDN, ब्राउज़र, संग्रह टूल और प्रोग्रामिंग भाषा की मानक लाइब्रेरी समझती है।
- गोपनीयता: संपीड़न पूरी तरह से आपके ब्राउज़र में होता है। इनपुट कभी हमारे सर्वरों तक नहीं पहुँचता।
- राउंड-ट्रिप तैयार: आउटपुट
gunzipCLI के साथ, HTTPContent-Encoding: gzipके साथ, और Python, Node.js, Go, Java या Rust के किसी भी RFC 1952 रीडर के साथ विसंपीड़ित होता है।
GZIP कम्प्रेशन के सामान्य अनुप्रयोग क्या हैं?
GZIP का उपयोग पूरे वेब पर और कमांड-लाइन टूलिंग में किया जाता है:
- HTTP स्थानांतरण: वेब सर्वर प्रतिक्रियाओं को GZIP से संपीड़ित करते हैं ताकि पृष्ठ नेटवर्क पर तेज़ी से लोड हों।
- लॉग संग्रह: लंबे समय तक चलने वाले सर्वर लॉग को डिस्क उपयोग कम करने के लिए .gz फ़ाइलों के रूप में संग्रहीत किया जाता है।
- बैकअप और बंडल: tarball (.tar.gz) पोर्टेबल वितरण के लिए पूरे निर्देशिका वृक्ष को संपीड़ित करते हैं।
GZIP कम्प्रेशन का उदाहरण कैसा दिखता है?
कई दोहराए गए फ़ील्ड नामों वाला 1 KB का JSON दस्तावेज़ आमतौर पर लगभग 200–300 बाइट्स में संपीड़ित होता है — चार से पाँच गुना आकार में कमी। बड़े टेक्स्ट लॉग अक्सर 90% या उससे अधिक संपीड़ित होते हैं। पहले से संपीड़ित इनपुट (JPEG, PNG, MP4, ZIP) और सिकुड़ेंगे नहीं और GZIP फ़्रेमिंग के कारण कुछ बाइट्स बढ़ सकते हैं।
यह GZIP कंप्रेसर सीधे आपके ब्राउज़र में मानक RFC 1952 आउटपुट उत्पन्न करता है। चाहे आप संचरण से पहले एक पेलोड को सिकोड़ रहे हों या संग्रह के लिए एक .gz फ़ाइल बना रहे हों, परिणाम नेटवर्क पर हर GZIP-जागरूक टूल के साथ संगत है।