Compression Middleware ব্যবহার

Performance Optimization এবং Caching - এক্সপ্রেসজেএস (ExpressJS) - Web Development

324

Compression Middleware ব্যবহার করে ExpressJS অ্যাপ্লিকেশনে HTTP রেসপন্স কম্প্রেস করা সম্ভব, যা ইন্টারনেটের মাধ্যমে ডেটা ট্রান্সফারের গতি বৃদ্ধি করতে সাহায্য করে এবং ব্যান্ডউইথের ব্যবহার কমায়। এটি সাধারণত gzip অথবা deflate কম্প্রেশন অ্যালগরিদম ব্যবহার করে কাজ করে।

ExpressJS-এ কম্প্রেশন মডিউল হিসেবে compression মডিউল ব্যবহার করা হয়, যা খুব সহজে রেসপন্স কম্প্রেস করে দেয়।


১. compression মডিউল ইনস্টল করা

প্রথমে আপনাকে compression মডিউলটি ইনস্টল করতে হবে:

npm install compression --save

২. compression মডিউল কনফিগার করা

এখন আপনাকে এই মডিউলটি আপনার Express অ্যাপ্লিকেশন এ ব্যবহার করতে হবে। এটি সাধারণত Middleware হিসেবে ব্যবহৃত হয়, যা সমস্ত রিকোয়েস্টের রেসপন্সে কম্প্রেশন অ্যাপ্লাই করবে।

উদাহরণ:

const express = require('express');
const compression = require('compression');
const app = express();

// compression middleware যুক্ত করা
app.use(compression());

// একটি সিম্পল রাউট তৈরি করা
app.get('/', (req, res) => {
  res.send('Hello, World!');
});

// সার্ভার চালু করা
app.listen(3000, () => {
  console.log('Server is running at http://localhost:3000');
});

এখানে, app.use(compression()) লাইনে compression middleware যুক্ত করা হয়েছে, যা সমস্ত HTTP রেসপন্স কম্প্রেস করবে।


৩. কাস্টম কনফিগারেশন

আপনি চাইলে compression মিডলওয়্যার কাস্টম কনফিগারেশনেও ব্যবহার করতে পারেন। এর মধ্যে কিছু কনফিগারেশন সেট করা যায়, যেমন কম্প্রেশনের থ্রেশহোল্ড (যতটুকু সাইজ কম্প্রেস করা হবে) এবং কনটেন্ট এনকোডিং ফরম্যাট।

উদাহরণ:

app.use(compression({
  threshold: 1024, // কম্প্রেশন শুধু তখনই হবে যখন রেসপন্স সাইজ ১KB এর বেশি হবে
  filter: (req, res) => {
    // এখানে আপনি চাইলে নির্দিষ্ট কন্ডিশন দিয়ে ফিল্টার করতে পারেন
    return compression.filter(req, res);
  }
}));

এখানে:

  • threshold: 1024: ১KB-এর বেশি সাইজের রেসপন্স গুলো কম্প্রেস হবে। যদি রেসপন্স সাইজ কম হয় তবে কম্প্রেশন হবে না।
  • filter: এই ফাংশনটি দিয়ে আপনি নির্দিষ্ট কন্ডিশনের মাধ্যমে রেসপন্সে কম্প্রেশন অ্যাপ্লাই করার জন্য সিদ্ধান্ত নিতে পারেন।

৪. কম্প্রেশন কিভাবে কাজ করে

কখনও কখনও ব্রাউজার বা ক্লায়েন্টের রিকোয়েস্টে Accept-Encoding হেডার থাকে যা ব্রাউজারকে নির্দেশ করে যে কী ধরনের কম্প্রেশন ফরম্যাট গ্রহণ করা হবে (যেমন gzip, deflate, ইত্যাদি)। ExpressJS compression মিডলওয়্যার স্বয়ংক্রিয়ভাবে এই হেডারের মান অনুসরণ করে এবং নির্ধারণ করে যে কোন কম্প্রেশন ফরম্যাট ব্যবহার করতে হবে।

উদাহরণ: Accept-Encoding হেডার

Accept-Encoding: gzip, deflate, br

এখানে:

  • ব্রাউজার gzip, deflate, অথবা br (Brotli) ফরম্যাট গ্রহণ করতে প্রস্তুত।

ExpressJS compression এই হেডারের মান অনুযায়ী গেজিপ কম্প্রেশন প্রয়োগ করবে যদি এটি ক্লায়েন্টের পক্ষে গ্রহণযোগ্য হয়।


৫. Performance Improvement

Compression Middleware ব্যবহার করার মাধ্যমে আপনার ওয়েব অ্যাপ্লিকেশনের পারফর্মেন্স উন্নত করা সম্ভব। কম্প্রেসড রেসপন্স ক্লায়েন্ট পর্যন্ত দ্রুত পৌঁছাতে সাহায্য করে এবং ব্যান্ডউইথ সাশ্রয় হয়।

উদাহরণ: কনটেন্টের সাইজের পার্থক্য

ধরা যাক আপনার রেসপন্স কনটেন্টের সাইজ ৫MB এবং আপনি compression middleware ব্যবহার করছেন। কম্প্রেশন অ্যাপ্লাই হলে কনটেন্ট সাইজ ১MB বা তারও কম হতে পারে, যা ব্যান্ডউইথ সাশ্রয় করে এবং ক্লায়েন্টে দ্রুত পৌঁছায়।


৬. সার্ভার এবং ক্লায়েন্টের মধ্যে প্রভাব

Compression ব্যবহারের ফলে সার্ভারের লোড কিছুটা বাড়তে পারে, কারণ কম্প্রেশন প্রক্রিয়া সময় নিয়ে কাজ করে। তবে ক্লায়েন্টের পারফর্মেন্স ভালো হয়, কারণ কম্প্রেসড ডেটা দ্রুত ডাউনলোড হয়।

ক্লায়েন্ট সাইডে কাজ

যেহেতু ক্লায়েন্ট এবং সার্ভারের মধ্যে কম্প্রেসড ডেটা আদান-প্রদান হচ্ছে, এতে:

  • ডাউনলোড টাইম কমে যায়।
  • ব্রাউজারের রিসোর্স সাশ্রয় হয় (যেমন RAM এবং CPU).
  • ব্যান্ডউইথ খরচ কমে।

সারাংশ

ExpressJScompression middleware ব্যবহার করে আপনি HTTP রেসপন্সগুলোকে কম্প্রেস করতে পারেন, যা ওয়েব অ্যাপ্লিকেশনগুলোর পারফর্মেন্স এবং ইউজার এক্সপেরিয়েন্স উন্নত করে। compression মডিউলটি সহজেই ExpressJS অ্যাপে ইন্টিগ্রেট করা যায় এবং এটি স্বয়ংক্রিয়ভাবে gzip অথবা deflate কম্প্রেশন প্রোটোকল ব্যবহার করে। আপনি চাইলে কাস্টম থ্রেশহোল্ড এবং ফিল্টার সেটিংস দিয়ে কম্প্রেশন কনফিগার করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...