अपाचे द्वारा दी गई पाठ फ़ाइलों के लिए gzip के बजाय अपस्फीति का उपयोग क्यों करें?
सरल उत्तर नहीं है ।
RFC 2616 इस प्रकार परिभाषित करता है:
RFC 1951 में वर्णित "अपस्फीति" संपीड़न तंत्र के साथ संयोजन में RFC 1950 में परिभाषित "ज़ालिब" प्रारूप को परिभाषित करें
Zlib प्रारूप RFC 1950 में इस प्रकार परिभाषित किया गया है :
0 1
+---+---+
|CMF|FLG| (more-->)
+---+---+
0 1 2 3
+---+---+---+---+
| DICTID | (more-->)
+---+---+---+---+
+=====================+---+---+---+---+
|...compressed data...| ADLER32 |
+=====================+---+---+---+---+
तो, कुछ हेडर और एक ADLER32 चेकसम
RFC 2616 के रूप में gzip को परिभाषित करता है:
gzip RFC 1952 [25] में वर्णित फ़ाइल संपीड़न कार्यक्रम "gzip" (GNU ज़िप) द्वारा निर्मित एक एन्कोडिंग प्रारूप। यह प्रारूप 32 बिट सीआरसी के साथ एक लेम्पेल-ज़िव कोडिंग (LZ77) है।
RFC 1952 संकुचित डेटा को परिभाषित करता है:
वर्तमान में प्रारूप संपीड़न के DEFLATE विधि का उपयोग करता है लेकिन अन्य संपीड़न विधियों का उपयोग करने के लिए इसे आसानी से बढ़ाया जा सकता है।
CRC-32 ADLER32 की तुलना में धीमी है
समान लंबाई के चक्रीय अतिरेक जांच की तुलना में, यह गति के लिए विश्वसनीयता (बाद वाले को प्राथमिकता) देता है।
तो ... हमारे पास 2 संपीड़न तंत्र हैं जो संपीड़न के लिए समान एल्गोरिथ्म का उपयोग करते हैं , लेकिन हेडर और चेकसम के लिए एक अलग एल्गोरिथ्म।
अब, अंतर्निहित टीसीपी पैकेट पहले से ही बहुत विश्वसनीय हैं , इसलिए यहां मुद्दा एडलर 32 बनाम सीआरसी -32 नहीं है जो जीजेडआईपी उपयोग करता है।
पिछले कुछ वर्षों में कई ब्राउज़रों ने गलत डिफॉल्ट एल्गोरिथ्म लागू किया। RFC 1950 में zlib हैडर की अपेक्षा करने के बजाय उन्होंने बस संकुचित पेलोड की अपेक्षा की। इसी तरह विभिन्न वेब सर्वरों ने एक ही गलती की।
इसलिए, वर्षों से ब्राउज़रों ने एक फजी लॉजिक डिफ्लेट इम्प्लीमेंटेशन लागू करना शुरू कर दिया था , वे ज़्लिब हेडर और एडलर चेकसम के लिए प्रयास करते हैं, यदि वह विफल हो जाता है तो वे पेलोड के लिए प्रयास करते हैं।
इस तरह के जटिल तर्क होने का परिणाम यह है कि यह अक्सर टूट जाता है। वर्व स्टूडियो में एक उपयोगकर्ता योगदान परीक्षण अनुभाग है जो बताता है कि स्थिति कितनी खराब है।
उदाहरण के लिए: सफारी 4.0 में काम करता है, लेकिन सफारी 5.1 में टूट गया है, यह भी हमेशा IE पर मुद्दों है।
तो, सबसे अच्छी बात यह है कि पूरी तरह से अवहेलना से बचें, मामूली गति को बढ़ावा देने (एडलर 32 के कारण) टूटी पेलोड के जोखिम के लायक नहीं है।