STATUS IS UPওয়েবসাইট অপ্টিমাইজেশন উইকি
20দ্রুততর করুন
পারফরম্যান্স ও ডেলিভারি / দ্রুততর করুন

ওয়েবসাইট মালিকদের জন্য ব্রাউজার ক্যাশিং গাইড

সুস্পষ্ট HTTP ক্যাশ নিয়ম নির্ধারণ করুন যাতে বারবার ভিজিট করলে অপ্রয়োজনীয় ডাউনলোড এড়ায়, কিন্তু ভিজিটরদের পুরনো পেজে আটকে না রাখে বা অননুমোদিত ব্যক্তিগতকৃত কনটেন্ট সার্ভ না করে।

ওয়েবসাইট মালিকদের জন্য ব্রাউজার ক্যাশিং গাইড — ভিজ্যুয়াল গাইড
পড়ুন
7 মিনিট
সূত্র
6
পুনরায় যাচাই করুন
2027-03-27
পর্যালোচিত
Web performance and release engineering reviewer
সংক্ষিপ্ত উত্তর

সিদ্ধান্ত দিয়ে শুরু করুন।

প্রতিটি ইউআরএলের শ্রেণির জন্য আলাদা ক্যাশিং নিয়ম ব্যবহার করুন। যেসব ফাইলের URL-এ কনটেন্ট কখনও পরিবর্তন হয় না—যেমন কনটেন্ট-ফিঙ্গারপ্রিন্টযুক্ত JavaScript, CSS, ফন্ট এবং ছবি—তাদের লম্বা freshness lifetime দিন। HTML এবং অন্যান্য অন-ভার্সনড রেসপন্সগুলোকে এমন নীতি দিন যা পুনঃব্যবহারের আগে ব্রাউজারকে ভ্যালিডেট করতে বলে, যেখানে freshness গুরুত্বপূর্ণ। একটি অ্যাসেট বদলে গেলে নতুন অ্যাসেট URL প্রকাশ করুন; দীর্ঘ ক্যাশ লাইফটাইম এমন কপিগুলোকে নির্বিকারভাবে রিভোক করতে বিশ্বস্ত পদ্ধতি নয়।

প্রথমত স্পষ্টভাবে Cache-Control হেডার ব্যবহার করে শুরু করুন, তারপর স্টেজিং পরিবেশে হেডার এবং ব্রাউজার আচরণ যাচাই করুন। ভ্যালিডেশন-সহকারী রেসপন্সগুলোর সাথে ETag এবং যেখানে পাওয়া যায় Last-Modified জোড়া লাগান। ব্যক্তিগতকৃত, অ্যাকাউন্ট, চেকআউট এবং সংবেদনশীল রেসপন্সগুলোকে পাবলিক পেজ থেকে আলাদা ভাবে আচরণ করুন। SIU এই কাজকে প্রোঅ্যাকটিভ আপটাইম অপ্টিমাইজেশন হিসেবে ব্যবহৃত করে: এটি অনাবশ্যক origin কাজ কমায় এবং রিলিজ সংক্রান্ত ক্যাশ ত্রুটিগুলো ব্যবহারকারীর অভিজ্ঞতা ভাঙার আগে আটকায়।

ভিজ্যুয়াল গাইড

কাজটিকে একটি সিস্টেম হিসেবে দেখুন।

কোনো নির্দিষ্ট কৌশল গ্রহণের আগে নিবন্ধটির সিদ্ধান্তগুলোকে সংযুক্ত করতে এই মানচিত্রটি ব্যবহার করুন।

SIUদ্রুততর করুন
01রিসোর্স অনুযায়ী নীতি ম্যাপ করুন, সার্ভারের উপর নয়
02Cache-Control টার্মগুলো সঠিকভাবে ব্যবহার করুন
03অপরিবর্তনীয় (immutable) অ্যাসেটগুলিকে লম্বা লাইফটাইম দেওয়ার আগে ভার্সন দিন
04HTML আপ-টু-ডেট রাখতে ভ্যালিডেশন ব্যবহার করুন, দীর্ঘকালের ক্যাশিং নয়
01

রিসোর্স অনুযায়ী নীতি ম্যাপ করুন, সার্ভারের উপর নয়

হেডার পরিবর্তন করার আগে প্রতিনিধিত্বমূলক ইউআরএলগুলোর ইনভেন্টরি নিন: হোম পেজ, কনটেন্ট পেজ, অ্যাপ্লিকেশন শেল, CSS, JavaScript, ছবি, ফন্ট, API, লগইন, অ্যাকাউন্ট, চেকআউট এবং ডাউনলোড। প্রতিটির জন্য নথিভুক্ত করুন রেসপন্সটি পাবলিক নাকি ব্যক্তিগতকৃত, তার URL কি বদলে যায় যখন বিটগুলো বদলে যায়, এবং সঠিকতা দর্শক পর্যন্ত কত দ্রুত পৌঁছাতে হবে।

ওই ইনভেন্টরি থেকে একটি নীতি ম্যাট্রিক্স তৈরি করুন। কনটেন্ট-অ্যাড্রেসড পাবলিক অ্যাসেটের জন্য স্থির ঠিকানার HTML-এর চাইতে ভিন্ন নিয়ম প্রয়োজন। Cache-Control ছাড়া রেসপন্সগুলোও হিউরিস্টিকভাবে ক্যাশ হতে পারে, তাই স্পষ্ট নিয়মগুলো টেস্ট করা সহজ।

Freshness lifetime

সংগ্রহীত রেসপন্স কতক্ষণ পুনঃব্যবহারযোগ্য থাকবে; max-age সেকেন্ডে এটি দেয়।

02

Cache-Control টার্মগুলো সঠিকভাবে ব্যবহার করুন

Cache-Control ব্রাউজার এবং শেয়ার্ড ক্যাশকে বলে কিভাবে একটি রেসপন্স সংরক্ষণ এবং পুনঃব্যবহার করতে হবে। max-age=N রেসপন্সকে ফ্রেশ থাকা অবস্থায় পুনরায় ব্যবহার করার অনুমতি দেয়। s-maxage=N শেয়ার্ড-ক্যাশের freshness সেট করে এবং সেখানে max-age কে ওভাররাইড করে, কিন্তু ব্রাউজার s-maxage উপেক্ষা করে। public যে কোনও ক্যাশকে অনুমতি দেয়; private ব্রাউজার ক্যাশিং অনুমোদন করে কিন্তু শেয়ার্ড-ক্যাশে সংরক্ষণ রোধ করে।

no-cache স্টোরেজকে অনুমতি দেয় কিন্তু পুনঃব্যবহারের আগে origin ভ্যালিডেশন চায়। no-store মানে ক্যাশগুলো রেসপন্সটি সংরক্ষণ করবে না, কিন্তু এটি সম্পূর্ণ প্রাইভেসি নিয়ন্ত্রণ নয়। যখন মেয়াদ উত্তীর্ণের পরে স্টেইল কনটেন্ট সার্ভ করা গ্রহণযোগ্য নয়, তখন must-revalidate ব্যবহার করুন; তখন অনুপলব্ধ origin একটি stale fallback দেওয়ার বদলে 504 দিতে পারে।

Avoid blanket no-store

এটি স্টোরেজ সরিয়ে দেয় শুধুমাত্র চেক করাকে বাধ্য করা ছাড়াও; শুধুমাত্র এমন রেসপন্সে ব্যবহারের জন্য সংরক্ষণ করুন যেগুলো সত্যিই সংরক্ষণ করা যাবেনা।

03

অপরিবর্তনীয় (immutable) অ্যাসেটগুলিকে লম্বা লাইফটাইম দেওয়ার আগে ভার্সন দিন

একটি ভার্সন্ড অ্যাসেট URL-এ কনটেন্ট ফিঙ্গারপ্রিন্ট বা রিলিজ ভার্সন থাকে, যেমন app.4f2c.js। যখন অ্যাসেট বাইটস বদলে যায়, ভিন্ন URL প্রকাশ করে HTML রেফারেন্স আপডেট করুন। ক্যাশ নতুন রিসোর্স হিসেবে দেখে, তাই ভিজিটররা ইনভ্যালিডেশন ছাড়াই নতুন অ্যাসেট ফetch করবে।

যদি একটি রিপ্রেজেন্টেশন তার freshness lifetime-এর মধ্যে বদলে না হয়, তাহলে Cache-Control: max-age=31536000, immutable একটি ব্যবহারিক প্যাটার্ন। immutable সমর্থনকারী ক্লায়েন্টকে ফ্রেশ থাকা অবস্থায় কন্ডিশনালি রিভ্যালিডেশনে না যেতে বলে। mutable same-URL ফাইলের জন্য এক বছর বা immutable ব্যবহার করবেন না। cached HTML এখনও যে ফিঙ্গারপ্রিন্টকৃত অ্যাসেটগুলোকে রেফার করে, সেগুলোকে ধরে রাখুন।

HTML is the manifest

HTML অ্যাসেট URL নির্বাচন করে, তাই রিলিজ সিকোয়েন্সিংয়ে রেফারেন্স করা জেনারেশন রাখতে হবে।

04

HTML আপ-টু-ডেট রাখতে ভ্যালিডেশন ব্যবহার করুন, দীর্ঘকালের ক্যাশিং নয়

HTML সাধারণত স্থিতিশীল, মানব-সম্মুখী URL থাকে এবং কনটেন্ট, অ্যাসেট রেফারেন্স, ফিচার ফ্ল্যাগ বা সিকিউরিটি নোটিস অনুযায়ী বদলে যায়। একটি সংরক্ষণশীল পাবলিক HTML প্যাটার্ন হচ্ছে Cache-Control: no-cache সঙ্গে ETag এবং Last-Modified—যখন আপনার প্ল্যাটফর্ম সেগুলো সঠিকভাবে তৈরি করতে পারে। ব্রাউজার বডিটি সংরক্ষণ করে কিন্তু পুনঃব্যবহারের আগে শর্তসাপেক্ষ অনুরোধ করে; অপরিবর্তিত থাকলে সার্ভার 304 Not Modified দেবে বডি ছাড়াই।

ETag একটি রিসোর্স ভার্সন শনাক্ত করে। একটি স্টেইল রেসপন্সে, ব্রাউজার এটি If-None-Match-এ পাঠাতে পারে; যদি মিল থাকে সার্ভার 304 রিটার্ন করে, নচেৎ নতুন রিপ্রেজেন্টেশন পাঠায়। RFC নির্দেশনা সম্ভব হলে 200 রেসপন্সে ETag এবং Last-Modified উভয়ই রাখার পরামর্শ দেয়। no-cache Back বা Forward নেভিগেশনে ভ্যালিডেশনের গ্যারান্টি দেয় না কারণ ব্রাউজার সেশন-হিস্টোরি স্ন্যাপশট পুনঃস্থাপন করতে পারে।

Validator quality

ETag অবশ্যই রিপ্রেজেন্টেশন বদলে গেলে পরিবর্তিত হতে হবে; এটা অরিজিন এবং ডেপ্লয়মেন্ট জুড়ে টেস্ট করুন।

05

পাবলিক ডেলিভারিকে ব্যক্তিগত ও সংবেদনশীল রেসপন্স থেকে আলাদা করুন

একটি শেয়ার্ড-ক্যাশ, যেমন CDN, একাধিক ব্যবহারকারীর জন্য একই রেসপন্স পুনরায় ব্যবহার করতে পারে। অ্যাকাউন্ট-নির্দিষ্ট HTML বা API ডেটা ব্যবহারকারীর মধ্যে পুনরায় ব্যবহার করা যাবে না। ব্রাউজারে থাকতে পারে এমন ব্যক্তিগতকৃত কনটেন্টের জন্য private, no-cache একটি যৌক্তিক সূচনাপথ: এটি শেয়ার্ড স্টোরেজ বন্ধ করে এবং ভ্যালিডেশন চাই। Set-Cookie হেডার একা ক্যাশিং বন্ধ করে না।

সংরক্ষণ করা উচিত নয় এমন রেসপন্সের জন্য no-store ব্যবহার করুন এবং অ্যাপ কোড, CDN নিয়ম, সার্ভিস ওয়ার্কার, ব্রাউজার স্টোরেজ, লগ এবং এরর পেজগুলো পর্যালোচনা করুন। শুধুমাত্র হেডার দিয়ে প্রাইভেসি, কমপ্লায়েন্স বা পেমেন্ট-সিকিউরিটি নিশ্চিত করা যায় না। সংবেদনশীল ফ্লো এবং প্রযোজ্য চাহিদার জন্য যোগ্য সিকিউরিটি, প্রাইভেসি এবং পেমেন্ট রিভিউয়ারদের মূল্যায়ন করান।

Authorization changes

ওয়ার্ম ব্রাউজার এবং CDN ক্যাশ নিয়ে সাইন-ইন, সাইন-আউট, অ্যাকাউন্ট সুইচিং এবং পারমিশন পরিবর্তনগুলো টেস্ট করুন।

06

ক্যাশ পরিবর্তনগুলো রিভার্সযোগ্য রিলিজ হিসেবে রোল আউট করুন

অপেক্ষাহীন এবং রিপিট রিকোয়েস্টের জন্য বেসলাইন হেডার এবং বডি আচরণ ক্যাপচার করুন। স্টেজিং-এ প্রথমে ভার্সন্ড অ্যাসেট ডেপ্লয় করুন, তারপর যে HTML সেগুলো রেফারেন্স করে তা ডেপ্লয় করে পুরনো ক্যাশড HTML কে নতুন অরিজিনের বিরুদ্ধে টেস্ট করুন। যদি ডাইরেক্ট-অরিজিন এবং CDN পাথ দুটোই থাকে সেগুলো চেক করুন। DevTools Network হেডারগুলো পরিকল্পিত নীতি এবং রিপিট আচরণ দেখাবে কিনা যাচাই করুন।

একটি রিলিজ ম্যানিফেস্ট রাখুন যাতে অ্যাসেট URL, হেডার নিয়ম এবং কনফিগারেশন ভার্সন থাকে। যদি একটি রিলিজ অসমঞ্জস ক্লায়েন্ট ফাইল একসাথে প্রকাশ করে, তবে কম্প্যাটিবল HTML এবং অ্যাপ্লিকেশন আচরণ পুনঃস্থাপন করুন, কিন্তু একটি প্রকাশিত ফিঙ্গারপ্রিন্টকৃত ফাইল ওভাররাইট করবেন না। HTML-কে নেক-গুড জেনারেশনে পয়েন্ট করুন এবং cached HTML এখনও যেগুলো অনুরোধ করতে পারে সেগুলো ধরে রাখুন। একটি শেয়ার্ড-ক্যাশ purge প্রতিটি ব্রাউজারকে একটি ফ্রেশ রেসপন্স discard করাতে পারে না।

Proactive remediation

হেডার-টেস্ট ব্যর্থতা, অ্যাসেট 404 এবং ভার্সন মিসম্যাচগুলোকে পরবর্তী রিলিজ চেকলিস্টের পরিবর্তে রূপান্তর করুন।

কর্ম / যাচাই

আপনার ব্যবহারিক কাজের নির্দেশিকা।

  1. 01

    রেসপন্স শ্রেণির ইনভেন্টরি নিন

    নমুনা ইউআরএলগুলোকে পাবলিক নাকি ব্যক্তিগত, মিউটেবল নাকি ভার্সন্ড হিসেবে শ্রেণিভুক্ত করুন।

    যাচাই করুন: HTML, অ্যাসেট, API, authentication, account, checkout এবং errors অন্তর্ভুক্ত।
  2. 02

    বর্তমান হেডারগুলো ক্যাপচার করুন

    Origin ও CDN-এ Cache-Control, ETag, Last-Modified, Age, Vary এবং status রেকর্ড করুন।

    যাচাই করুন: প্রতিটি নমুনার জন্য একটি পরিবর্তনের পূর্বের স্ন্যাপশট আছে।
  3. 03

    মিউটেবল অ্যাসেট ফিঙ্গারপ্রিন্ট করুন

    বিল্ড নিশ্চিত করুক যে অ্যাসেটের বাইটস বদলালে নতুন অ্যাসেট URL প্রকাশ হয়।

    যাচাই করুন: একটি পরিবর্তিত অ্যাসেট একটি পরিবর্তিত URL এবং HTML রেফারেন্স উৎপন্ন করে।
  4. 04

    স্পষ্ট নীতি সেট করুন

    শুধুমাত্র অপরিবর্তনীয় ভার্সন্ড URL-গুলির জন্য দীর্ঘস্থায়ী নিয়ম ব্যবহার করুন; স্থিতিশীল URL-গুলির জন্য ভ্যালিডেশন-প্রথম নীতি ব্যবহার করুন।

    যাচাই করুন: হেডার টেস্টগুলো প্রত্যাশিত নীতির সাথে মিলে।
  5. 05

    ভ্যালিডেশন টেস্ট করুন

    একটি অপরিবর্তিত ডকুমেন্ট কন্ডিশনাল রিকোয়েস্টে 304 ফেরত দেয় এবং পরিবর্তিতটি 200 সহ নতুন ETag ফেরত দেয় তা পরীক্ষা করুন।

    যাচাই করুন: স্টেজিং ট্রেসগুলো উভয় পথ প্রদর্শন করে।
  6. 06

    প্রাইভেসি সীমা অনুশীলন করুন

    দুইটি অ্যাকাউন্ট, সাইন-আউট, রোল পরিবর্তন, এবং সংবেদনশীল রুটগুলো ওয়ার্ম ক্যাশ নিয়ে টেস্ট করুন।

    যাচাই করুন: কোনো ব্যক্তিগতকৃত রেসপন্স ব্যবহারকারীর মধ্যে ক্রস করে না।
  7. 07

    রিলিজ কম্প্যাটিবিলিটি প্রমাণ করুন

    পরবর্তী রিলিজের পর Cached পুরনো HTML লোড করুন।

    যাচাই করুন: পুরনো এবং বর্তমান HTML তাদের রেফারেন্সকৃত অ্যাসেটগুলো 404 বা স্ক্রিপ্ট ত্রুটি ছাড়াই লোড করে।
  8. 08

    রোলব্যাক নথিভুক্ত করুন

    ভালো জেনারেশন, হেডার ভার্সন, মালিক এবং পুরানো-অ্যাসেট ধরে রাখার সময়কাল রেকর্ড করুন।

    যাচাই করুন: একটি নন-প্রোডাকশন ড্রিল জানা-সঠিক জেনারেশন পুনরুদ্ধার করে immutable URL সম্পাদনা না করে।
আলোচ্য বিষয়

ট্রেড-অফগুলো তুলনা করুন, ব্যক্তিগত ডেটা নয়।

এই প্রম্পটগুলো আপনার টিম বা ওয়েবসাইট-মালিক কমিউনিটির সঙ্গে ব্যবহার করুন। পদ্ধতি ও শিক্ষা শেয়ার করুন, কিন্তু কখনোই লগইন তথ্য, গ্রাহক রেকর্ড বা অপ্রকাশ্য ইনফ্রাস্ট্রাকচার বিবরণ পেস্ট করবেন না।

  1. 01

    আপনার সাইটে কোন URL শ্রেণিগুলোকে পাবলিক, ব্যক্তিগত, অপরিবর্তনীয় বা ঘন ঘন পরিবর্তনশীল হিসেবে শ্রেণীবদ্ধ করা কঠিন ও কীভাবে সেই সিদ্ধান্ত নথিভুক্ত করছেন?

  2. 02

    কোন রিলিজ সিকোয়েন্সিং টেস্টটি সবচেয়ে কার্যকর প্রমাণিত হয়েছে পুরনো-HTML এবং নতুন-অ্যাসেট মিসম্যাচ ধরতে, ভিজিটরের সামনে আসার আগেই?

  3. 03

    আপনার CDN, অ্যাপ্লিকেশন এবং ব্রাউজার ক্যাশ নিয়মগুলো কোথায় ওভারল্যাপ করে, এবং তাদের সম্মিলিত আচরণ প্রত্যাশিত নীতির সাথে মেলে তা যাচাই করার দায় কে নেবে?

জনপ্রিয় / প্রামাণিক রিসোর্স

সোর্স মেটারিয়াল দেখুন

IETFRFC 9111: HTTP Caching ↗

freshness, validation, cache directives, invalidation, এবং সংবেদনশীল-তথ্য সীমার ব্যাখ্যা করে।

পর্যালোচিত 2026-09-27
IETFRFC 8246: HTTP Immutable Responses ↗

immutable caching, এর scope, এবং ত্রুটি-প্রভাব সম্পর্কিত সংজ্ঞা।

পর্যালোচিত 2026-09-27
MDN Web DocsHTTP caching ↗

ভ্যালিডেটর, 304s, পার্সোনালাইজেশন এবং ক্যাশ-বাস্টিং নিয়ে ব্যবহারিক নির্দেশনা।

পর্যালোচিত 2026-09-27
MDN Web DocsCache-Control header ↗

max-age, s-maxage, no-cache, no-store, private, public, এবং must-revalidate সম্পর্কে রেফারেন্স।

পর্যালোচিত 2026-09-27
MDN Web DocsETag header ↗

entity tags, If-None-Match, এবং 304 ভ্যালিডেশন ব্যাখ্যা করে।

পর্যালোচিত 2026-09-27
web.devPrevent unnecessary network requests with the HTTP Cache ↗

ভার্সন্ড URL, ভ্যালিডেটর, নীতি, এবং ডেপ্লয়মেন্ট নিয়ে ব্যবহারিক নির্দেশনা।

পর্যালোচিত 2026-09-27

সোর্স নীতি। এই আর্টিকলে পাঠ্যমান ও প্রথম-পক্ষ প্রযুক্তিগত ডকুমেন্টেশন ব্যবহার করা হয়েছে। এটি অসমর্থিত পারফরম্যান্স দাবি এড়ায় এবং HTTP নিয়মগুলোকে প্ল্যাটফর্ম-নির্দিষ্ট কনফিগারেশন থেকে পৃথক রাখে।

দ্রুত স্পষ্টীকরণ

সাধারণ প্রশ্ন

no-cache মানে কি ব্রাউজার পেজ সংরক্ষণ করতে পারে না?

না। no-cache স্টোরেজকে অনুমতি দেয় কিন্তু পুনঃব্যবহারের আগে origin-এর সঙ্গে সফল ভ্যালিডেশন চায়। যখন রেসপন্স সংরক্ষণই নিষিদ্ধ হওয়া উচিত, তখন no-store ব্যবহার করুন, কিন্তু লক্ষ্য রাখুন no-store একা প্রাইভেসি গ্যারান্টি নয়।

প্রত্যেক স্ট্যাটিক ফাইল কি এক বছরের ক্যাশ লাইফ পাওয়া উচিত?

না। একটি এক-বছরের max-age শুধুমাত্র তখনই উপযুক্ত যখন সেই URL-এর বাইটস ওই সময়কালে বদলাবে না—সাধারণত তখনই যখন URL ফিঙ্গারপ্রিন্ট বা ভার্সন্ড। মিউটেবল same-URL ফাইলগুলোকে ছোট বা ভ্যালিডেশন-প্রথম নীতি দিন।

ব্রাউজার ক্যাশ ভুল হলে CDN purge কি সমস্যা সমাধান করতে পারে?

এটি ম্যানেজ করা শেয়ার্ড-ক্যাশের কপি সরাতে পারে, কিন্তু প্রতিটি ব্রাউজারকে একটি ফ্রেশ রেসপন্স বাতিল করাতে পারে না। নতুন ভার্সন্ড অ্যাসেট URL প্রকাশ করে HTML রেফারেন্স আপডেট করুন; প্রয়োজন হলে রোলব্যাক প্ল্যান ব্যবহার করে কম্প্যাটিবল জেনারেশন পুনঃস্থাপন করুন।

Status Is UP Editorial Team · Uptime Enablement Editors

পর্যালোচনা করেছেন Web performance and release engineering reviewer. প্রকাশিত 2026-09-27; আপডেট 2026-09-30.