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 فائلوں کے طور پر اسٹور کیا جاتا ہے۔
- بیک اپ اور بنڈلز: tarballs (.tar.gz) پورٹیبل تقسیم کے لیے پوری ڈائرکٹری کے درختوں کو کمپریس کرتے ہیں۔
GZIP کمپریشن کی مثال کیسی دکھتی ہے؟
کئی دہرائے گئے فیلڈ ناموں والی 1 KB JSON دستاویز عام طور پر تقریباً 200–300 بائٹس تک کمپریس ہو جاتی ہے — چار سے پانچ گنا سائز میں کمی۔ بڑے متن کے لاگز اکثر 90% یا اس سے زیادہ کمپریس ہو جاتے ہیں۔ پہلے سے کمپریس کردہ ان پٹس (JPEG، PNG، MP4، ZIP) مزید نہیں سکڑیں گے اور GZIP فریمنگ کی وجہ سے چند بائٹس بڑھ سکتے ہیں۔
یہ GZIP کمپریسر براہ راست آپ کے براؤزر میں معیاری RFC 1952 آؤٹ پٹ پیدا کرتا ہے۔ چاہے آپ منتقل کرنے سے پہلے کسی پے لوڈ کو سکیڑ رہے ہوں یا آرکائیو کے لیے .gz فائل بنا رہے ہوں، نتیجہ نیٹ ورک پر ہر GZIP سے واقف ٹول کے ساتھ تعامل کرتا ہے۔