যদি-সংশোধিত-পরে এবং যদি না-মিল হয় তবে তার মধ্যে পার্থক্য কী হতে পারে? আমার একটা অনুভূতি আছে যে ফাইলগুলির জন্য যদি কোনও-মিল না হয় তবে পৃষ্ঠাগুলির জন্য যদি-সংশোধিত-ব্যবহৃত হয়?
উত্তর:
Last-Modified/If-Modified-Since
এবং এর মধ্যে পার্থক্য সম্পর্কে ETag/If-None-Match
:
উভয়ই বিনিময়যোগ্য হিসাবে ব্যবহার করা যেতে পারে। তবে উত্সের ধরণ এবং সার্ভারে এটি কীভাবে উত্পন্ন হয় তার উপর নির্ভর করে একটি বা অন্য প্রশ্ন ("এটি কি এর পরে সংশোধিত হয়েছে ...?" / "এটি এখনও এই ইটাগের সাথে মেলে?") উত্তর দেওয়া সহজ হতে পারে ।
উদাহরণ:
mtime
হিসাবে ব্যবহার করা Last-Modified
সহজ সমাধান solutionETag
করা অনেক সহজ হবে। এই বিষয়ে আরও তথ্যের জন্য এই লিঙ্কগুলি দেখুন:
If-Modified-Since
তুলনা করা হয় Last-Modified
যেখানে If-None-Match
সাথে তুলনা করা হয় ETag
। উভয় Modified-Since
এবং ETag
একটি উত্স একটি নির্দিষ্ট বৈকল্পিক সনাক্ত করতে ব্যবহার করা যেতে পারে।
কিন্তু তুলনা If-Modified-Since
করতে Last-Modified
আপনি তথ্য কিনা ক্যাশে বৈকল্পিক দেয় পুরোনো বা নতুন যেহেতু তুলনা If-None-Match
করতে ETag
শুধু আপনার তথ্য উভয় কিনা দেয় অভিন্ন বা না। তবুও বেশিরভাগ ETag
জেনারেটরগুলির মধ্যে সিস্টেম নির্দিষ্ট নির্দিষ্ট ইনোডের তথ্য অন্তর্ভুক্ত থাকে সুতরাং কোনও ফাইলকে অন্য ড্রাইভে স্থানান্তরিত করার পাশাপাশি এটিও পরিবর্তন করতে পারে ETag
।
সর্বশেষ-পরিবর্তিত / যদি-সংশোধিত-তে ব্যবহৃত টাইমস্ট্যাম্প মানটি যথাযথভাবে সীমাবদ্ধ করে থাকে - এক সেকেন্ড এবং এটি দ্রুত পরিবর্তিত সামগ্রীর জন্য কেবল পর্যাপ্ত নয়, উদাহরণস্বরূপ, ওয়েব চ্যাট অ্যাপ্লিকেশন যেখানে কোনও নির্দিষ্ট সেকেন্ডে একাধিক বার্তা পোস্ট করা যেতে পারে । ETag / If-No-Match এই সমস্যাটি সমাধান করতে সহায়তা করতে পারে।
যেমনটি গুগলের সেরা অনুশীলনে বর্ণিত হয়েছে:
সমস্ত ক্যাশেযোগ্য সংস্থার জন্য মেয়াদ উত্তীর্ণ বা ক্যাশে-নিয়ন্ত্রণ সর্বোচ্চ-বয়সের মধ্যে একটি এবং সর্বশেষ-পরিবর্তিত বা ইটাগের একটি নির্দিষ্ট করা গুরুত্বপূর্ণ। মেয়াদপূর্তি এবং ক্যাশে-নিয়ন্ত্রণ: সর্বাধিক বয়স, বা সর্বশেষ-সংশোধিত এবং ইটাগ উভয়ই নির্দিষ্ট করা বাড়াবাড়ি।
https://developers.google.com/speed/docs/best-practices/casing
Last-Modified
সঙ্গে ETag
(বা useragent পাশ, If-Modified-Since
সঙ্গে If-None-Match
) উল্লেখ করা হয়। একইভাবে ডাব্লু 3 অনুষঙ্গ আপনাকে সীমাবদ্ধ করে না। এটা ব্যবহার করা না বলছেন If-Modified-Since
সঙ্গে If-Match
, কিন্তু আমি অনুমান যে কারণ নথি হিসাবে ETag দ্বারা সংজ্ঞায়িত যে তারিখ কিন্তু একই বিষয়বস্তু আপডেট করেছি সেট বেশ ছোট হতে হবে।
যদি-সংশোধিত-যেহেতু একটি তারিখ ব্যবহার করে, অন্যদিকে -যদি-না-ম্যাচ একটি ETag ব্যবহার করে । এগুলি উভয়ই "পৃষ্ঠাগুলি" (যেমন এইচটিএমএল) এবং অন্যান্য ফাইলগুলির জন্য ব্যবহার করা যেতে পারে।
সার্ভার দ্বারা দুর্বল হিসাবে বর্ণিত না হলে, একটি ইট্যাগকে শক্তিশালী বৈধ প্রমাণকারী হিসাবে বিবেচনা করা হয় এবং এটি শর্তসাপেক্ষে অনুরোধটিকে সন্তুষ্ট করতে ব্যবহার করা যেতে পারে। যাইহোক, সর্বাধিক স্বয়ংক্রিয়ভাবে উত্পন্ন ETags সার্ভার ফার্ম পরিস্থিতিতে অসুবিধা প্রদর্শন করে, যেহেতু তারা প্রায়শই ইনোড তথ্য এবং / অথবা একটি অনন্য ধ্রুবক কাউন্টার ব্যবহার করে। অনুশীলনে, আমি সর্বশেষ সংশোধিত শিরোনামটি মোটামুটি স্থিতিশীল সামগ্রীর জন্য যথেষ্ট হিসাবে খুঁজে পেয়েছি, উদাহরণস্বরূপ সুরক্ষিত স্ট্যাটিক বিষয়বস্তু পরিবেশন করা, যেহেতু ফাইলটির লেখার সময়টি যুক্তিসঙ্গতভাবে ভাল বৈধকরণকারী করে।
ইটাগ এখন পর্যন্ত সবচেয়ে নমনীয়। কনফার্মিং ক্লায়েন্টদের শর্তাধীন অনুরোধে ইটাগ প্রেরণ করা প্রয়োজন, যেখানে তারা উপলব্ধ থাকলে উভয়ই প্রেরণ করতে হবে।
ব্রাউজারটি সর্বশেষে অনুরোধ করা সংস্থানটি প্রাপ্ত সময় নির্দিষ্ট করতে যদি-সংশোধিত-যেহেতু শিরোনাম ব্যবহৃত হয়। ইফ-নন-ম্যাচ শিরোনামটি সর্বশেষ প্রাপ্তির সময় অনুরোধকৃত উত্স দিয়ে সার্ভার জারি করা সত্তা ট্যাগ নির্দিষ্ট করতে ব্যবহৃত হয়।
বর্ণিত দুটি উপায়ে, এই শিরোলেখগুলি ব্রাউজারের মধ্যে সামগ্রীর ক্যাচিং সমর্থন করার জন্য ব্যবহৃত হয় এবং তারা সার্ভারকে সক্ষম করে যে ব্রাউজারটিকে কোনও উত্সের ক্যাশেড অনুলিপি ব্যবহার করার নির্দেশ দেয়, পরিবর্তে যদি এটি হয় তবে সামগ্রীর সম্পূর্ণ সামগ্রীর সাথে প্রতিক্রিয়া জানাতে হবে জরুরী না.