টুল
গাইড

gzip / deflate / zlib সংকোচন ও প্রসারণ

এনকোডিং

gzip, deflate বা zlib দিয়ে টেক্সট সংকুচিত বা প্রসারিত করুন। Base64 বা Hex আউটপুট এবং আগে/পরে সাইজ তুলনা সহ।

100% ক্লায়েন্ট-সাইড কোনো ব্যাকএন্ড নেই

দূরবর্তী URL আনা হয় না; আপনার JSON সরাসরি পেস্ট করুন।

দিক
ইনপুট
আউটপুট
সংকুচিত করতে টেক্সট, বা প্রসারিত করতে Base64/Hex লিখুন।
এই পৃষ্ঠায়

gzip সংকোচন কী?#

gzip হলো সাধারণ-উদ্দেশ্য্য ক্ষয়হীন টেক্সট ও বাইট সংকোচক যা সমগ্র ওয়েব জুড়ে ব্যবহৃত হয় — HTTP-এর Content-Encoding: gzip-কে সমর্থন দেয়, আপনি সার্ভার থেকে আনা .gz ফাইলগুলো, এবং অগণিত লগ শিপারের ওয়্যার ফরম্যাট। এটি পুনরাবৃত্ত বাইট প্যাটার্ন খুঁজে বের করে এবং সেগুলোকে ছোট রেফারেন্স দিয়ে প্রতিস্থাপন করে কাজ করে, তাই পুনরাবৃত্তি সহ টেক্সট (সোর্স কোড, JSON, CSV, লগ লাইন) নাটকীয়ভাবে সংকুচিত হয়, যখন ইতিমধ্যে সংকুচিত বা এলোমেলো ডেটা (JPEG, এনক্রিপ্টেড বাইট) কদাচিৎ নড়ে।

এই পৃষ্ঠাটি তিনটি সম্পর্কিত অ্যালগরিদম অফার করে যেগুলোকে অনর্গল কথায় “gzip”-এর অধীনে একত্রিত করা হয়, এবং সেগুলো শুধুমাত্র একই DEFLATE কোরের চারপাশের মোড়কে ভিন্ন:

  • gzip (RFC 1952) — সম্পূর্ণ প্যাকেজ: একটি ম্যাজিক বাইট সহ একটি হেডার, সংকুচিত পেলোড, এবং একটি CRC32 + আকার ট্রেলার। এটিই .gz ফাইল এবং HTTP gzip ব্যবহার করে।
  • deflate (RFC 1951) — কোনো মোড়ক ছাড়া কাঁচা সংকুচিত স্ট্রিম। সবচেয়ে ছোট আউটপুট, কিন্তু কোনো অখণ্ডতা যাচাই নেই; কিছু API (পুরোনো Content-Encoding: deflate) ঠিক এটিই প্রত্যাশা করে।
  • zlib (RFC 1950) — একটি হালকা 2-বাইট হেডার এবং একটি Adler-32 চেকসাম, অন্য দুটির মধ্যে।

সংকুচিত আউটপুট বাইনারি হওয়ায়, টুলটি তা Base64 বা Hex টেক্সট হিসেবে রেন্ডার করে যাতে আপনি তা কপি করতে পারেন, JSON-এ পেস্ট করতে পারেন, বা অন্যত্র পাইপ করতে পারেন। ডিকম্প্রেস উল্টোটা করে: এটি Base64 বা Hex পড়ে এবং মূল UTF-8 টেক্সট ফেরত দেয়।

ব্যবহারবিধি#

  1. টুলবারে অ্যালগরিদম বেছে নিন: gzip, deflate, বা zlib
  2. দিক বেছে নিন: সংকুচিত করুন (টেক্সট ইন → Base64/Hex আউট) বা প্রসারিত করুন (Base64/Hex ইন → টেক্সট আউট)।
  3. আউটপুট বেছে নিন: Base64 বা Hex (ডিকম্প্রেস মোডে এই নির্বাচনকারীটি লক করা, যেহেতু টুলটি এনকোডিং স্বয়ংক্রিয়ভাবে সনাক্ত করে)।
  4. বাঁদিকের ইনপুট পেইনে পেস্ট করুন; ইনপুট আকার তার হেডারে দেখানো হয়। ফলাফল আউটপুট পেইন পূরণ করে, হেডারে তার আকার সহ।
  5. একটি সংকোচনের পরে, আগে/পরে বার উপস্থিত হয়, দেখায় পেলোড কতটা বড় বা ছোট হয়েছে। ফলাফল নিতে কপি ব্যবহার করুন, বা একটি .gz ফাইল হিসেবে সংরক্ষণ করতে ডাউনলোডনমুনা একটি সাধারণ লগ লাইন লোড করে; মুছুন সব রিসেট করে।

মূল বৈশিষ্ট্য#

  • তিনটি অ্যালগরিদম, একটি নিয়ন্ত্রণ। gzip, deflate, এবং zlib-এর মধ্যে স্যুইচ করুন দেখতে একই ইনপুটের জন্য মোড়ক ওভারহেড আউটপুট আকার কীভাবে পরিবর্তন করে।
  • সৎ আকার তুলনা। আগে/পরে বার প্রকৃত বাইট গণনা এবং চিহ্নিত শতাংশ পরিবর্তন দেখায় — সেই ক্ষেত্রটিও সহ যেখানে সংকোচন পেলোডকে বড় করে তোলে, যা gzip সম্পর্কে জানার মতো সবচেয়ে উপযোগী জিনিস।
  • ডিকম্প্রেসে স্বয়ংক্রিয় এনকোডিং সনাক্তকরণ। Base64 বা Hex পেস্ট করুন এবং টুলটি বুঝে নেয় এটি কোনটি, তাই আপনাকে মনে রাখতে হবে না।
  • ফেরার পথে কঠোর UTF-8। ডিকম্প্রেস করা বাইটগুলো যদি বৈধ UTF-8 না হয় (ভুল অ্যালগরিদম নির্বাচিত, ছোট করা পেলোড), টুলটি তা বলে ভুল লুকানো প্রতিস্থাপন অক্ষর নির্গত করার বদলে।
  • আপনার ব্রাউজারে চলে। সংকোচন একটি ছোট, অলসভাবে লোড করা লাইব্রেরির মাধ্যমে স্থানীয়ভাবে চলে; আপনি যা পেস্ট করেন তা পৃষ্ঠা ছাড়ে না।

ব্যবহারিক উদাহরণ#

একটি একক ছোট লগ লাইন সংকুচিত করা — নমুনা ইনপুট 2026-08-06 INFO request handled path=/api/stats status=200 (58 বাইট) — gzip এবং Base64 আউটপুট দিয়ে দেয়:

H4sIAHcNdmoAAzMyMDLTNbDQNTBT8PRz81coSi0sTS0uUchIzEvJSU1RKEgsybDVTyzI1C8uSSwpVgCRpcW2RgYGACs/7EA6AAAA

আগে/পরে বার প্রতি-স্বজ্ঞাত অংশটি প্রকাশ করে: প্লেইন টেক্সটের সেই 58 বাইট gzipped এবং Base64-এনকোড হওয়ার পর 75 বাইট হয়ে যায়। ইনপুটটি DEFLATE-র সংকুচিত করার মতো কিছু খুঁজে পাওয়ার জন্য খুব ছোট এবং খুব এলোমেলো ছিল, তাই gzip হেডার, ট্রেলার এবং Base64 ওভারহেড (প্রায় 33%) শুধু উপরে জমা হয়। এটিই ঠিক কেন ক্ষুদ্র পেলোড gzip করা অর্থহীন।

পুনরাবৃত্তিমূলক টেক্সটের সাথে তুলনা করুন। transaction_id=txn_00001 status=paid amount=100 currency=usd\n লাইনের আটটি অনুলিপি মোট 488 বাইট, এবং gzip সেগুলোকে 84 বাইট-এ নামিয়ে আনে — মূলের প্রায় 17%। এটিই সেই জায়গা যেখানে সংকোচন তার প্রাপ্যতা অর্জন করে: যত বেশি পুনরাবৃত্তি, তত গভীর সংকোচন।

একই ছোট লগ লাইনকে deflate-এ স্যুইচ করলে আউটপুট 57 বাইটে নেমে যায় (কোনো হেডার/ট্রেলার নেই) এবং zlib 63 বাইটে পৌঁছায় — কার্যকর যখন আপনি একটি নির্দিষ্ট ওয়্যার ফরম্যাট টার্গেট করছেন এবং অন্য প্রান্তের সাথে মেলাতে হবে।

প্রশ্নোত্তর#

gzip, deflate, নাকি zlib — কোনটি বেছে নেব?#

অন্য পাশের সাথে মিলান। .gz ফাইল, HTTP Content-Encoding: gzip, এবং প্রায় প্রতিটি “সংকুচিত” API পেলোডের জন্য gzip ব্যবহার করুন। deflate শুধুমাত্র তখন ব্যবহার করুন যখন একটি API নির্দিষ্টভাবে কাঁচা DEFLATE নথিভুক্ত করে (কিছু লিগেসি Content-Encoding: deflate সার্ভার)। zlib ব্যবহার করুন যখন একটি লাইব্রেরি বা প্রোটোকল তা স্পষ্টভাবে নাম করে। সন্দেহ হলে, gzip নিরাপদ ডিফল্ট।

আমার আউটপুট ইনপুটের চেয়ে বড়। এটি কি কোনো বাগ?#

না — এটি এমনভাবেই ক্ষয়হীন সংকোচন ছোট বা উচ্চ-এনট্রপি ইনপুটে কাজ করে। প্রতি স্ট্রিমে একটি নির্দিষ্ট ওভারহেড আছে (হেডার, ট্রেলার, অভিধান ওয়ার্ম-আপ), এবং যদি কন্টেন্টে কম পুনরাবৃত্তি থাকে, DEFLATE তা পুনরুদ্ধার করতে পারে না। একটি ব্যবহারিক নিয়ম: gzip কয়েকশো বাইট বা তার বেশি পেলোডে নির্ভরযোগ্যভাবে জয়লাভ শুরু করে, বিশেষত পুনরাবৃত্তি সহ টেক্সটে। ছোট মানের জন্য, সংকোচন এড়িয়ে যান।

প্রসারিত করা আমাকে বলছে ডেটাটি বৈধ UTF-8 নয়। কী ভুল হয়েছে?#

সাধারণত তিনটির মধ্যে একটি: আপনি ভুল অ্যালগরিদম বেছেছেন (ডেটাটি zlib-সংকুচিত ছিল কিন্তু আপনি gzip নির্বাচন করেছেন, বা উল্টো), Base64/Hex ছোট করা হয়েছে বা মাঝখানে বিচ্যুত হোয়াইটস্পেস আছে, বা মূলটি টেক্সটের বদলে বাইনারি ছিল। পালাক্রমে অন্যান্য অ্যালগরিদম চেষ্টা করুন, এবং পরীক্ষা করুন যে পেস্ট করা পেলোড কিছু দ্বারা ছাঁটা হয়নি।

এটি কি ছবি, ভিডিও, বা ইতিমধ্যে-জিপ করা ফাইল সংকুচিত করতে পারে?#

আপনি যেকোনো কিছু পেস্ট করতে পারেন, কিন্তু আপনি কদাচিৎ কিছু লাভ করবেন। JPEG, PNG, MP4, এবং .zip/.gz-এর মতো ফরম্যাট ইতিমধ্যে সংকুচিত, তাই DEFLATE-র চাপার মতো কিছু নেই — আউটপুট প্রায় একই আকার বা সামান্য বড় হবে। gzip হলো টেক্সট এবং কাঠামোগত ডেটার জন্য একটি টুল, বাইনারি মিডিয়ার উপর একটি দ্বিতীয় পাস নয়।