Data Compression (Gzip)

Web Development - এএসপি ডট (ASP.Net) - অ্যাডভান্সড পারফরম্যান্স টিউনিং |
7
7

Data Compression হল একটি প্রক্রিয়া যার মাধ্যমে ডেটার আকার ছোট করা হয়, যাতে নেটওয়ার্কের মাধ্যমে দ্রুত এবং কম ব্যান্ডউইথে ডেটা পাঠানো সম্ভব হয়। Gzip (GNU Zip) হল একটি জনপ্রিয় কম্প্রেশন ফর্ম্যাট যা ডেটা কম্প্রেস এবং ডি-কম্প্রেস করার জন্য ব্যবহৃত হয়। ASP.Net অ্যাপ্লিকেশনগুলোতে Gzip কম্প্রেশন ব্যবহার করে ডেটা প্রেরণ করলে ওয়েব পেজের লোড টাইম কমে এবং সার্ভার ও ক্লায়েন্টের মধ্যে ডেটা ট্রান্সফারের জন্য ব্যান্ডউইথ সাশ্রয় হয়।

ASP.Net এবং ASP.Net Core অ্যাপ্লিকেশনগুলিতে Gzip কম্প্রেশন সক্রিয় করা সহজ, এবং এটি সাধারণত HTTP রেসপন্সের ক্ষেত্রে ব্যবহৃত হয়।


ASP.Net Core: Gzip Data Compression

ASP.Net Core অ্যাপ্লিকেশনগুলোতে Gzip কম্প্রেশন সক্রিয় করা Middleware ব্যবহার করে করা হয়। Microsoft.AspNetCore.ResponseCompression প্যাকেজটি Gzip কম্প্রেশন সক্ষম করতে সহায়তা করে।

১. Gzip কম্প্রেশন সক্রিয় করা

প্রথমে, Microsoft.AspNetCore.ResponseCompression প্যাকেজটি ইনস্টল করতে হবে:

dotnet add package Microsoft.AspNetCore.ResponseCompression

২. Startup.cs ফাইলে Gzip কম্প্রেশন কনফিগার করা

ConfigureServices মেথডে AddResponseCompression মেথড ব্যবহার করে Gzip কম্প্রেশন সক্ষম করুন।

public void ConfigureServices(IServiceCollection services)
{
    services.AddResponseCompression(options =>
    {
        options.EnableForHttps = true;  // HTTPS রিকোয়েস্টের জন্য কম্প্রেশন সক্রিয় করা
        options.Providers.Add<GzipCompressionProvider>();  // Gzip কম্প্রেশন প্রোভাইডার যোগ করা
    });
}

এরপর, Configure মেথডে UseResponseCompression মেথড ব্যবহার করে Gzip কম্প্রেশন Middleware যুক্ত করতে হবে।

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }
    else
    {
        app.UseExceptionHandler("/Home/Error");
        app.UseHsts();
    }

    app.UseResponseCompression();  // Gzip কম্প্রেশন সক্রিয় করা
    app.UseHttpsRedirection();
    app.UseStaticFiles();
    app.UseRouting();
    app.UseAuthorization();
    app.MapControllerRoute(
        name: "default",
        pattern: "{controller=Home}/{action=Index}/{id?}");
}

এখানে:

  • AddResponseCompression মেথডে Gzip কম্প্রেশন প্রোভাইডার যোগ করা হয়েছে।
  • UseResponseCompression মেথডে কম্প্রেশন Middleware সক্রিয় করা হয়েছে।

৩. কনফিগারেশন অপশনস

EnableForHttps অপশনটি HTTPS রিকোয়েস্টের জন্য কম্প্রেশন সক্রিয় করে। আপনি চাইলে অন্য কম্প্রেশন প্রোভাইডার (যেমন Brotli) যোগ করতে পারেন।

options.Providers.Add<BrotliCompressionProvider>(); // Brotli প্রোভাইডার যোগ করা

ASP.Net (MVC/Web API): Gzip কম্প্রেশন

ASP.Net MVC বা Web API তে Gzip কম্প্রেশন সিস্টেম লেভেলে বা অ্যাপ্লিকেশন লেভেলে কনফিগার করা যেতে পারে। HTTP Compression এর মাধ্যমে Gzip সক্রিয় করার জন্য, আপনাকে Web.config ফাইলে কনফিগারেশন করতে হবে।

১. Web.config ফাইলে Gzip কম্প্রেশন কনফিগার করা

Web.config ফাইলে নিচের মতো কনফিগারেশন ব্যবহার করা যেতে পারে:

<configuration>
  <system.webServer>
    <httpCompression>
      <dynamicTypes>
        <add mimeType="text/*" enabled="true" />
        <add mimeType="application/javascript" enabled="true" />
        <add mimeType="application/json" enabled="true" />
        <add mimeType="application/xml" enabled="true" />
      </dynamicTypes>
      <staticTypes>
        <add mimeType="text/css" enabled="true" />
        <add mimeType="text/html" enabled="true" />
        <add mimeType="application/xhtml+xml" enabled="true" />
      </staticTypes>
    </httpCompression>
    <urlCompression doDynamicCompression="true" doStaticCompression="true" />
  </system.webServer>
</configuration>

এখানে:

  • dynamicTypes বিভাগে যেসব MIME টাইপের জন্য ডায়নামিক কম্প্রেশন চালানো হবে তা উল্লেখ করা হয়েছে (যেমন, JSON, JavaScript, XML)।
  • staticTypes বিভাগে স্ট্যাটিক ফাইলের জন্য কম্প্রেশন চালানো হবে (যেমন, CSS, HTML)।
  • doDynamicCompression এবং doStaticCompression এর মাধ্যমে ডায়নামিক এবং স্ট্যাটিক কম্প্রেশন চালু করা হয়েছে।

২. সার্ভার সাইড Gzip কম্প্রেশন

ASP.Net তে Gzip কম্প্রেশন সাধারণত IIS (Internet Information Services) ব্যবহার করে সার্ভারে এনাবল করা হয়। IIS সিস্টেমে কম্প্রেশন চালু করতে IIS Manager থেকে কম্প্রেশন সেটিংস কনফিগার করতে হবে।


Gzip কম্প্রেশন এর সুবিধা

  • ব্যান্ডউইথ সাশ্রয়: ডেটার আকার ছোট হওয়ায়, কম্প্রেসড ডেটা কম ব্যান্ডউইথ ব্যবহার করে।
  • লোড টাইম কমানো: কম্প্রেসড ডেটা দ্রুত ট্রান্সফার হওয়ার ফলে ওয়েব পেজের লোড টাইম কমে যায়।
  • নেটওয়ার্ক পারফরম্যান্স বৃদ্ধি: কম্প্রেসড ডেটার মাধ্যমে নেটওয়ার্ক পারফরম্যান্স উন্নত হয়, বিশেষ করে মোবাইল নেটওয়ার্কে।

সারাংশ

ASP.Net Core এবং ASP.Net অ্যাপ্লিকেশনগুলিতে Gzip কম্প্রেশন ব্যবহার করে সার্ভার এবং ক্লায়েন্টের মধ্যে ডেটার আদান-প্রদান দ্রুত এবং ব্যান্ডউইথ সাশ্রয়ী করা যায়। ASP.Net Core তে সহজেই Gzip সক্রিয় করা যায় ResponseCompression Middleware ব্যবহার করে, এবং ASP.Net MVC/Web API তে Web.config ফাইলের মাধ্যমে এটি কনফিগার করা হয়। Gzip কম্প্রেশন ওয়েব অ্যাপ্লিকেশনের পারফরম্যান্স বাড়াতে সাহায্য করে।

Content added By
Promotion