GZIP কম্প্রেশন কী?
GZIP হলো RFC 1952 দ্বারা সংজ্ঞায়িত একটি ক্ষতিহীন কম্প্রেশন ফাইল ফরম্যাট। এটি DEFLATE অ্যালগরিদম (RFC 1951) দ্বারা উৎপাদিত একটি পেলোড র্যাপ করে, যা পুনরাবৃত্তিমূলক ডেটাকে একটি কমপ্যাক্ট বাইট স্ট্রিমে সংকুচিত করতে LZ77 ব্যাক-রেফারেন্স এবং Huffman কোডিং একত্রিত করে।
GZIP কম্প্রেশন কীভাবে কাজ করে?
আপনার ইনপুট নেটিভ CompressionStream('gzip') API ব্যবহার করে সম্পূর্ণভাবে আপনার ব্রাউজারে প্রক্রিয়া করা হয়। উচ্চ-স্তরের পদক্ষেপগুলো হলো:
- টুলটি আপনার টেক্সট বা ফাইলকে বাইটের স্ট্রিমে রূপান্তর করে (টেক্সট ইনপুটের জন্য UTF-8)।
- সেই বাইটগুলো
gzipফরম্যাটের জন্য কনফিগার করা একটিCompressionStream-এর মধ্য দিয়ে যায়। - ব্রাউজার DEFLATE প্রয়োগ করে: একটি স্লাইডিং-উইন্ডো LZ77 পাস পুনরাবৃত্তিমূলক সিকোয়েন্স খুঁজে বের করে এবং Huffman কোডিং সাধারণ প্রতীকগুলোতে ছোট কোড নির্দিষ্ট করে।
- একটি 10-বাইট gzip হেডার এবং 8-বাইট ফুটার DEFLATE পেলোডের চারপাশে মোড়ানো হয়, একটি স্ট্যান্ডার্ড .gz কন্টেইনার তৈরি করে।
- ফলাফল টেক্সট ইনপুটের জন্য Base64 বা হেক্স হিসেবে রেন্ডার করা হয়, বা বাইনারি ইনপুটের জন্য ডাউনলোডযোগ্য .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 কম্প্রেসর সরাসরি আপনার ব্রাউজারে স্ট্যান্ডার্ড RFC 1952 আউটপুট তৈরি করে। আপনি ট্রান্সমিশনের আগে একটি পেলোড সংকুচিত করছেন বা আর্কাইভালের জন্য একটি .gz ফাইল তৈরি করছেন — ফলাফল নেটওয়ার্কের প্রতিটি GZIP-সচেতন টুলের সাথে ইন্টারঅপারেট করে।