আপনার শেষ প্রশ্নের জন্য, কেন? আমি যা জানি তার সাথে ব্যাখ্যা করার চেষ্টা করব
সাধারণ লোকের পদগুলিতে এই তিনটি স্থিতির কোডের একটি সংক্ষিপ্ত বিবরণ।
- 200 - সাফল্য (ব্রাউজারের অনুরোধ এবং সার্ভার থেকে ফাইল পান)
সার্ভারে ক্যাচিং সক্ষম করা থাকলে
- 200 (মেমরি ক্যাশে থেকে) - ব্রাউজারে ফাইল পাওয়া যায়, তাই ব্রাউজারটি সার্ভারের কাছে অনুরোধ চায় না
- 304 - ব্রাউজার কোনও ফাইলের জন্য অনুরোধ করে তবে এটি সার্ভার দ্বারা প্রত্যাখ্যাত হয়
কিছু ফাইলের জন্য ব্রাউজার সার্ভার থেকে অনুরোধ করার সিদ্ধান্ত নিচ্ছে এবং কারও কাছে এটি স্টোরেজ (ক্যাশেড) ফাইলগুলি থেকে পড়ার সিদ্ধান্ত নিচ্ছে। কেন ? প্রতিটি ফাইলের একটি মেয়াদ শেষ হয়, তাই
যদি কোনও ফাইলের মেয়াদ শেষ না হয় তবে ব্রাউজারটি ক্যাশে (200 ক্যাশে) ব্যবহার করবে।
যদি ফাইলটির মেয়াদ শেষ হয়ে যায়, ব্রাউজার কোনও ফাইলের জন্য সার্ভারের জন্য অনুরোধ করে। উভয় জায়গায় সার্ভার চেক ফাইল (ব্রাউজার এবং সার্ভার)। যদি একই ফাইল পাওয়া যায় তবে সার্ভার অনুরোধটি প্রত্যাখ্যান করে। প্রোটোকল অনুসারে ব্রাউজার বিদ্যমান ফাইল ব্যবহার করে।
এই nginx কনফিগারেশন তাকান
location / {
add_header Cache-Control must-revalidate;
expires 60;
etag on;
...
}
এখানে মেয়াদোত্তীর্ণটি 60 সেকেন্ডে সেট করা আছে, সুতরাং সমস্ত স্থিতিশীল ফাইলগুলি 60 সেকেন্ডের জন্য ক্যাশে থাকে। সুতরাং আপনি 60 সেকেন্ডের মধ্যে যদি আবার কোনও ফাইলের জন্য অনুরোধ করেন তবে ব্রাউজারটি মেমরি থেকে পড়বে (200 মেমরি)। 60 সেকেন্ডের পরে যদি আপনি অনুরোধ করেন তবে ব্রাউজার সার্ভারের জন্য অনুরোধ করবে (304)।
আমি ধরে নিয়েছি যে ফাইলটি 60 সেকেন্ডের পরে পরিবর্তন করা হয়নি, সেই ক্ষেত্রে আপনি 200 পাবেন (যেমন, সার্ভার থেকে আপডেট হওয়া ফাইলটি নেওয়া হবে)।
সুতরাং, যদি সার্ভারগুলি বিভিন্ন মেয়াদোত্তীর্ণ এবং ক্যাশে শিরোনাম (নীতিগুলি) দিয়ে কনফিগার করা থাকে তবে স্ট্যাটাসটি পৃথক হতে পারে।
আপনার ক্ষেত্রে আপনি সিডিএন ব্যবহার করছেন, সিডনির মূল উদ্দেশ্যটি উচ্চ প্রাপ্যতা এবং দ্রুত বিতরণ। সুতরাং তারা একাধিক সার্ভার ব্যবহার করে। যদিও ফাইলগুলি একই ডিরেক্টরিতে রয়েছে বলে মনে হয়, সিডিএন আপনার সামগ্রীর সরবরাহ করতে একাধিক সার্ভার ব্যবহার করতে পারে, যদি সেই সার্ভারগুলির আলাদা আলাদা কনফিগারেশন থাকে। তাহলে এই স্ট্যাটাস পরিবর্তন হতে পারে। আশা করি এটা সাহায্য করবে.