Django ডিফল্টভাবে কিছু middleware প্রদান করে, যেগুলি আপনার অ্যাপ্লিকেশন এবং রিকোয়েস্ট/রেসপন্স লাইফসাইকেল পরিচালনা করতে সাহায্য করে। নিম্নলিখিত হলো Django ডিফল্ট middleware গুলোর নাম এবং সংক্ষিপ্ত বিবরণ:
1. SecurityMiddleware
- কাজ: ওয়েব অ্যাপ্লিকেশনের নিরাপত্তা নিশ্চিত করে। এটি HTTPS এর মাধ্যমে নিরাপদ কানেকশন (SSL) এবং HTTP সিকিউরিটি হেডার যেমন
Strict-Transport-Security,X-Content-Type-Options,X-Frame-Optionsইত্যাদি যোগ করে। - সংক্ষিপ্ত বিবরণ: নিরাপত্তা সংক্রান্ত কিছু সাধারণ হেডার যুক্ত করে এবং কিছু নিরাপত্তা বৈশিষ্ট্য সক্রিয় করে।
2. SessionMiddleware
- কাজ: সেশন ডেটা ম্যানেজ করে। এটি ব্যবহারকারীর সেশন ডেটাকে
SESSION_COOKIEবা অন্য কোনো স্টোরেজে সংরক্ষণ করে এবং পুনরুদ্ধারের জন্য প্রতিটি রিকোয়েস্টে সেগুলি অ্যাক্সেস করতে সহায়তা করে। - সংক্ষিপ্ত বিবরণ: ক্লায়েন্ট সেশন ম্যানেজ করে এবং সেশন কুকি দিয়ে ব্যবহৃত তথ্য সংরক্ষণ করে।
3. CommonMiddleware
- কাজ: সাধারণ কিছু ফিচার সমর্থন করে। এটি URL redirection (যেমন,
/এর শেষে slashes যোগ করা) এবংContent-Lengthহেডার ম্যানেজ করার মতো কাজ করে। - সংক্ষিপ্ত বিবরণ: সাধারণ কাজ যেমন slashes শেষ করা,
Content-Lengthহেডার যোগ করা ইত্যাদি।
4. CSRFMiddleware
- কাজ: CSRF (Cross Site Request Forgery) আক্রমণ প্রতিরোধে সহায়তা করে। এটি একটি
CSRF tokenদিয়ে ফর্ম সাবমিশন যাচাই করে। - সংক্ষিপ্ত বিবরণ: CSRF আক্রমণ প্রতিরোধের জন্য টোকেন যাচাই করে এবং নিরাপত্তা নিশ্চিত করে।
5. AuthenticationMiddleware
- কাজ: ব্যবহারকারীর লগইন স্টেটাস ট্র্যাক করে। এটি রিকোয়েস্টে
userঅবজেক্ট যোগ করে, যা ডাটাবেজ থেকে লগইন ইউজারকে যাচাই করে। - সংক্ষিপ্ত বিবরণ: রিকোয়েস্টের সাথে লগইন করা ইউজারের ডেটা অ্যাটাচ করে (যেমন:
request.user)।
6. MessageMiddleware
- কাজ: সেশন বেসড মেসেজগুলো হ্যান্ডল করে। এটি সাধারণত ব্যবহারকারীদের সেশনে মেসেজ শো করার জন্য ব্যবহৃত হয়।
- সংক্ষিপ্ত বিবরণ: ব্যবহারকারীদের জন্য সেশনে সংরক্ষিত মেসেজগুলি দেখানোর জন্য ব্যবহৃত হয় (যেমন: ফ্ল্যাশ মেসেজ)।
7. RedirectFallbackMiddleware
- কাজ: কনফিগার করা ফ্যালব্যাক URL গুলির মাধ্যমে রিডাইরেকশন নিশ্চিত করে।
- সংক্ষিপ্ত বিবরণ: URL রিডাইরেকশন কাজ করে।
8. LocaleMiddleware
- কাজ: ব্যবহারকারীর ল্যাংগুয়েজ প্রেফারেন্স অনুযায়ী লোকালাইজেশন ম্যানেজ করে।
- সংক্ষিপ্ত বিবরণ: রিকোয়েস্টের ভাষা পরিবর্তন এবং প্রাসঙ্গিক ভাষা ফাইলগুলি লোড করার জন্য ব্যবহৃত হয়।
9. XFrameOptionsMiddleware
- কাজ: একে অন্যের পেজে ফ্রেম করা থেকে রক্ষা করে। এটি
X-Frame-Optionsহেডার সেট করে। - সংক্ষিপ্ত বিবরণ: অন্য সাইটে আপনার সাইটকে ফ্রেমে প্রদর্শন হওয়া থেকে রক্ষা করে।
10. CacheMiddleware
- কাজ: রিকোয়েস্টের জন্য ক্যাশিং হ্যান্ডল করে। এটি ক্যাশ করা ডেটা দ্রুত সার্ভ করার জন্য ব্যবহৃত হয়।
- সংক্ষিপ্ত বিবরণ: রিকোয়েস্টের আউটপুট ক্যাশ করে, যাতে একাধিক রিকোয়েস্টে একই ডেটা পুনরায় সার্ভ করার প্রয়োজন না হয়।
11. ConditionalGetMiddleware
- কাজ: ক্লায়েন্টের HTTP
If-Modified-SinceবাIf-None-Matchহেডারের ভিত্তিতে রেসপন্স কন্ডিশনালি সরবরাহ করে। - সংক্ষিপ্ত বিবরণ: কন্ডিশনাল রেসপন্স সাপোর্ট করে, অর্থাৎ ক্যাশ হওয়া রেসপন্সগুলি যদি পরিবর্তন না হয়, তবে তা আবার সার্ভ করবে না।
12. GZipMiddleware
- কাজ: রেসপন্স গেজিপ (Gzip) ফর্ম্যাটে কম্প্রেস করে পাঠায়।
- সংক্ষিপ্ত বিবরণ: রেসপন্স কম্প্রেস করে গেজিপ ফর্ম্যাটে পাঠায়, যা নেটওয়ার্ক ট্রাফিক কমাতে সহায়তা করে।
13. HttpResponseCompressionMiddleware
- কাজ: HTTP রেসপন্সের কম্প্রেশন হ্যান্ডল করে, বিশেষ করে যখন মডিফায়েড কনটেন্ট বা ক্যাশিংয়ে গেজিপ ফরম্যাট ব্যবহার করা হয়।
- সংক্ষিপ্ত বিবরণ: HTTP রেসপন্স কম্প্রেস করে।
14. RequestMiddleware (Custom Middleware)
- কাজ: এটির মাধ্যমে ব্যবহারকারী নিজস্ব লগ, ক্লিয়ারেন্স এবং কিছু কাস্টম কাজ করতে পারে।