Catch up on everthing we announced at this year's Firebase Summit. Learn more

ক্যাশে আচরণ পরিচালনা করুন

ফায়ারবেস হোস্টিং একটি শক্তিশালী গ্লোবাল সিডিএন ব্যবহার করে আপনার সাইটকে যত দ্রুত সম্ভব তৈরি করতে।

কোন অনুরোধ স্ট্যাটিক কন্টেন্ট স্বয়ংক্রিয়ভাবে যা CDN ক্যাশে করা হয়। আপনি যদি আপনার সাইটের বিষয়বস্তু পুনরায় নিয়োগ করেন, তাহলে Firebase হোস্টিং পরবর্তী অনুরোধ না হওয়া পর্যন্ত CDN জুড়ে আপনার সমস্ত ক্যাশেড স্ট্যাটিক কন্টেন্ট স্বয়ংক্রিয়ভাবে সাফ করে দেয়।

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

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

আপনি সম্ভাব্য ফাংশন এক্সিকিউশন খরচ কমাতে পারেন কারণ ট্রিগারড ফাংশনের মাধ্যমে বিষয়বস্তু সিডিএন থেকে পরিবেশন করা হয়। ফাংশন মৃত্যুদন্ড এবং পরিষেবার নিখুঁত সম্পর্কে আরও পড়ুন ক্লাউড কার্যাবলী এবং ক্লাউড চালান ডকুমেন্টেশন।

Google এর মধ্যে আচরণ ক্যাশে সম্পর্কে আরো জানুন ওয়েব ডেভেলপার ডকুমেন্টেশন

ক্যাশে-কন্ট্রোল সেট করুন

প্রধান হাতিয়ার যে আপনি গতিশীল বিষয়বস্তুর জন্য ক্যাশে পরিচালনার জন্য ব্যবহার করা হয় Cache-Control হেডার। এই শিরোলেখটি কনফিগার করে, আপনি ব্রাউজার এবং CDN উভয়কেই যোগাযোগ করতে পারেন যে আপনার সামগ্রী কতক্ষণ ক্যাশে রাখা যাবে। আপনার ফাংশন, আপনি সেট Cache-Control যেমন:

res.set('Cache-Control', 'public, max-age=300, s-maxage=600');

এই উদাহরণ শিরোনামে, নির্দেশাবলী তিনটি জিনিস করে:

  • public - মার্কস যেমন ক্যাশে public । এর অর্থ এই যে উভয় ব্রাউজার এবং অন্তর্বর্তী সার্ভার (Firebase হোস্টিং জন্য যা CDN অর্থ) সামগ্রী ক্যাশে পারবেন না।

  • max-age - ব্রাউজার এবং যা CDN কত সেকেন্ড যে তারা বিষয়বস্তু ক্যাশে করতে নির্দেশ দেওয়া হয়। যখন নির্ধারিত সময় শেষ হয়, ব্রাউজার এবং CDN কে অবশ্যই মূল সার্ভারের সাথে বিষয়বস্তু পুনরায় যাচাই করতে হবে। উদাহরণস্বরূপ হেডার, আমরা পাঁচ মিনিটের জন্য বিষয়বস্তু (দেখুন ক্যাশে করার ব্রাউজার এবং যা CDN সক্ষম হবেন করছি s-maxage যা CDN ক্যাশে জন্য নির্দিষ্ট নিয়ন্ত্রণের জন্য নীচে)।

  • s-maxage - অগ্রাহ্য করা max-age জন্য নির্দেশ শুধুমাত্র যা CDN ক্যাশে; CDN কে বলে কত সেকেন্ড যে বিষয়বস্তু ক্যাশে করতে পারে। যখন নির্ধারিত সময় শেষ হয়, CDN কে অবশ্যই মূল সার্ভারের সাথে বিষয়বস্তু পুনরায় যাচাই করতে হবে। উদাহরণস্বরূপ হেডার, আমরা জন্য সেটিং অগ্রাহ্য করছি max-age যা CDN শুধুমাত্র এবং CDN দশ মিনিট ধরে বিষয়বস্তু ক্যাশে করতে সক্ষম হবেন।

জন্য max-age এবং s-maxage , সময় দীর্ঘতম পরিমাণ তাদের মানগুলি সেট যে আপনার মামুলি বিষয়বস্তু গ্রহণ ব্যবহারকারীদের সাথে এসেছেন আরামদায়ক। যদি প্রতি কয়েক সেকেন্ডে একটি পৃষ্ঠা পরিবর্তন হয়, একটি ছোট সময় মান ব্যবহার করুন। যাইহোক, অন্যান্য ধরনের বিষয়বস্তু ঘন্টা, দিন বা এমনকি মাসের জন্য নিরাপদে ক্যাশে করা যায়।

আপনি সম্পর্কে আরও জানতে পারেন Cache-Control উপর হেডার মোজিলা ডেভেলপার নেটওয়ার্ক এবং Google এর মধ্যে ওয়েব ডেভেলপার ডকুমেন্টেশন

ক্যাশেড কন্টেন্ট কখন পরিবেশন করা হয়?

ব্রাউজার এবং CDN ক্যাশে আপনার বিষয়বস্তু উপর ভিত্তি করে:

  • হোস্টনেম
  • পথ
  • প্রশ্ন স্ট্রিং
  • উল্লেখিত অনুরোধ হেডার বিষয়বস্তুর Vary হেডার

শিরোলেখ পরিবর্তন করুন

Vary হেডার নির্ধারণ করে যা হেডার একটি যথাযথ প্রতিক্রিয়া উপলব্ধ করার জন্য (কিনা ক্যাশে সামগ্রী বৈধ বা বিষয়বস্তু উৎপত্তি সার্ভারের সাথে revalidated করা উচিত) ব্যবহার করা উচিত অনুরোধ।

Firebase স্বয়ংক্রিয়ভাবে হোস্টিং সেট করে একটি যথাযথ Vary সাধারণ পরিস্থিতিগুলির জন্য আপনার প্রতিক্রিয়া উপর হেডার। বেশিরভাগ সময়ে, আপনার চিন্তার প্রয়োজন হবে না Vary হেডার। যাইহোক, কিছু উন্নত ব্যবহারের ক্ষেত্রে, আপনার অন্যান্য হেডার থাকতে পারে যা আপনাকে ক্যাশে প্রভাবিত করতে হবে। এটা ক্ষেত্রে, তখন আপনি সেট করতে পারেন Vary আপনার প্রতিক্রিয়া উপর হেডার। উদাহরণ স্বরূপ:

res.set('Vary', 'Accept-Encoding, X-My-Custom-Header');

এই ক্ষেত্রে, মূল্য Vary হেডার হল:

vary: X-My-Custom-Header, x-fh-requested-host, accept-encoding, cookie, authorization

এই সেটিংস সঙ্গে, বিভিন্ন সঙ্গে দুই অন্যথায় অভিন্ন অনুরোধ X-My-Custom-Header হেডার আলাদাভাবে ক্যাশে করা হয়। হোস্টিং যোগ লক্ষ্য করুন Cookie এবং Authorization করতে Vary ডিফল্টরূপে হেডার যখন একটি অনুরোধ গতিশীল বিষয়বস্তুর জন্য তৈরি করা হয়। এটি নিশ্চিত করে যে আপনি যে কোনও সেশন বা কুকি অনুমোদনের শিরোনামটি ক্যাশে কী এর অংশ হিসাবে তৈরি করেছেন, যা কন্টেন্টের দুর্ঘটনাজনিত ফাঁস রোধ করে।

এছাড়াও নোট করুন:

  • শুধু GET এবং HEAD অনুরোধ ক্যাশে করা যেতে পারে। অন্যান্য পদ্ধতি ব্যবহার করে HTTPS অনুরোধ কখনও ক্যাশে করা হয় না।

  • করার সময় সতর্ক থাকুন সেটিংস যুক্ত করা Vary হেডার। আপনি যত বেশি সেটিংস যোগ করবেন, সিডিএন ক্যাশেড কন্টেন্ট পরিবেশন করার সম্ভাবনা কম। এটিও স্মরণে রাখুন যে Vary অনুরোধ হেডার, না প্রতিক্রিয়া হেডার উপর ভিত্তি করে।

কুকিজ ব্যবহার করে

ক্লাউড ফাংশন বা ক্লাউড রান সহ ফায়ারবেস হোস্টিং ব্যবহার করার সময়, কুকিগুলি সাধারণত আগত অনুরোধগুলি থেকে ছিনিয়ে নেওয়া হয়। এই দক্ষ যা CDN জন্য অনুমতি প্রয়োজন ক্যাশে আচরণ । শুধু বিশেষভাবে নামক __session কুকি আপনার অ্যাপের মৃত্যুদন্ড থেকে মধ্য দিয়ে পাস করার অনুমতি দেওয়া হয়।

যখন বর্তমান, __session কুকি স্বয়ংক্রিয়ভাবে ক্যাশে কী একটি অংশ তৈরি করা হয়, যার মানে হল এটি অন্যান্য এর ক্যাশে উত্তর পাইনি বিভিন্ন কুকিজ সঙ্গে দুই ব্যবহারকারীদের জন্য অসম্ভব। শুধুমাত্র ব্যবহার __session কুকি আপনার অ্যাপ ব্যবহারকারী অনুমোদন উপর নির্ভর করে ভিন্ন সামগ্রী স্থল।