উত্তর:
আমার এই একই প্রশ্ন ছিল, এবং আমার অনুসন্ধানগুলিতে কিছু তথ্য পেয়েছি (আপনার প্রশ্নটি ফলাফলগুলির মধ্যে একটি হিসাবে উঠে এসেছে)। আমি যা স্থির করেছি তা এখানে ...
Cache-Control
শিরোনামের দুটি দিক রয়েছে । এক দিক যেখানে এটি ওয়েব সার্ভারের মাধ্যমে পাঠানো যেতে পারে (যেমন। "উত্স সার্ভার")। অন্য দিকটি যেখানে এটি ব্রাউজারের মাধ্যমে পাঠানো যেতে পারে (যেমন "ব্যবহারকারী এজেন্ট")।
আমি বিশ্বাস করি max-age=0
কেবল ক্যাশে (এবং ব্যবহারকারী এজেন্ট) বলে প্রতিক্রিয়া থেকে মামুলি পেতে যেতে যেতে এবং তাই তারা উচিত প্রতিক্রিয়া revalidate (যেমন। সঙ্গে If-Not-Modified
হেডার) একটি ক্যাশে প্রতিলিপিটি ব্যবহার করার আগে, যেহেতু, no-cache
তাদের বলে তারা হবে একটি ক্যাশে ব্যবহার করার আগে revalidate কপি করুন। 14.9.1 থেকে ক্যাশেবল কী :
নো-ক্যাশে
... একটি ক্যাশে অবশ্যই উত্স সার্ভারের সাথে সফল পুনরায় বৈধকরণ ব্যতীত পরবর্তী অনুরোধটি পূরণ করতে প্রতিক্রিয়া ব্যবহার করা উচিত নয়। এটি ক্লিনিকের অনুরোধগুলিতে বাসি প্রতিক্রিয়াগুলি ফিরিয়ে দিতে কনফিগার করা ক্যাশে এমনকি এমন কোনও উত্স সার্ভারকে ক্যাচিং প্রতিরোধ করার অনুমতি দেয়।
অন্য কথায়, ক্যাশে কখনও কখনও বাসি প্রতিক্রিয়া ব্যবহার করতে পছন্দ করতে পারে (যদিও আমি বিশ্বাস করি তাদের তখন একটি Warning
শিরোনাম যোগ করতে হবে ) তবে no-cache
তারা বলছে যে যাই হোক না কেন তারা বাসি প্রতিক্রিয়া ব্যবহার করার অনুমতি পাচ্ছে না। আপনি যখন কোনও পৃষ্ঠায় বেসবলের পরিসংখ্যান তৈরি করা হয় তখন আপনি উচিত- অকার্যকর আচরণ চান , তবে আপনি যখন কোনও ই-বাণিজ্য ক্রয়ের প্রতিক্রিয়া তৈরি করেছেন তখন অবশ্যই আপনাকে অবশ্যই অবশ্যই অবৈধ আচরণ চান ।
যদিও আপনি আপনার মন্তব্যে সঠিক ছিলেন যখন আপনি বলেন no-cache
যে স্টোরেজ প্রতিরোধ করার কথা নয়, এটি ব্যবহার করার সময় এটি অন্যরকম হতে পারে no-cache
। আমি একটি পৃষ্ঠায় এসে পৌঁছেছি , ক্যাশে কন্ট্রোল ডাইরেক্টিভ ডেমিস্টাইফড , যা বলেছে যে (আমি এর সঠিকতার জন্য কোনও প্রমাণ দিতে পারি না):
অনুশীলনে, IE এবং ফায়ারফক্স নো-ক্যাশের নির্দেশকে এমনভাবে আচরণ করা শুরু করেছে যেন তা ব্রাউজারকে পৃষ্ঠাটি ক্যাশে না করার নির্দেশ দেয়। আমরা প্রায় এক বছর আগে এই আচরণটি পর্যবেক্ষণ শুরু করেছি। আমাদের সন্দেহ হয় এই ক্যাচিং প্রতিরোধের জন্য এই নির্দেশকে ব্যাপকভাবে (এবং ভুল) ব্যবহারের দ্বারা এই পরিবর্তনটি উত্সাহিত হয়েছিল।
...
দেরিতে দেখুন, "ক্যাশে-নিয়ন্ত্রণ: নো-ক্যাশে" "নো-স্টোর" নির্দেশকের মতো আচরণও শুরু করেছে।
একদিকে যেমন, এটি আমার কাছে উপস্থিত হয় যা Cache-Control: max-age=0, must-revalidate
মূলত একই জিনিসটির অর্থ হওয়া উচিত Cache-Control: no-cache
। তাই হয়তো একটি পথ পেতে এর আবশ্যক এর -revalidate আচরণ no-cache
যখন আপাত মাইগ্রেশন এড়ানো, no-cache
একই জিনিস করছেন no-store
(যেমন। কোন সবটা ক্যাশে)?
আমি বিশ্বাস করি শাহকল্পেশের উত্তরটি ব্যবহারকারী এজেন্ট পক্ষের ক্ষেত্রে প্রযোজ্য। আপনি একাধিক প্রতিক্রিয়া ছিন্ন করতে 13.2.6 এও দেখতে পারেন ।
যদি কোনও ব্যবহারকারী এজেন্ট একটি অনুরোধ প্রেরণ করে Cache-Control: max-age=0
(যেমন "শেষ থেকে শেষ পুনরায়করণ"), তারপরে প্রতিটি ক্যাশে মূল ক্যাশের প্রবেশ (যেমন If-Not-Modified
শিরোনাম সহ) পুরোপুরি সার্ভারে পুনরায়করণ করবে । উত্তরটি যদি 304 হয় (পরিবর্তিত নয়) তবে ক্যাশেড সত্তাটি ব্যবহার করা যেতে পারে।
অন্যদিকে, Cache-Control: no-cache
(যেমন "শেষ-থেকে-শেষ পুনরায় লোড করুন") দিয়ে একটি অনুরোধ প্রেরণ করা পুনরায় বৈধ নয় এবং সার্ভার সাড়া দেওয়ার সময় একটি ক্যাশেড অনুলিপি ব্যবহার করা উচিত নয় ।
must-revalidate
no-cache
বা হিসাবে একই হতে বোঝানো হয় না no-store
। পরবর্তী বাইপাস সম্পূর্ণরূপে ক্যাশে, তবে প্রাক্তন কেবল বলেছেন যে একটি ক্যাশে সর্বদা সতেজতা জন্য চেক করা উচিত, তবে এটি যদি বর্তমান হয় তবে এটি ব্যবহার করা যেতে পারে, তাই ব্যান্ডউইদথ সংরক্ষণ করা। পরেরটি অযৌক্তিক ব্যান্ডউইদথ গ্রহণ এবং বিলম্বিত প্রতিক্রিয়াগুলি গ্রহণ করে পুরো সময় থেকে শেষের দিকে ডাউনলোডগুলি সর্বদা জোর করে।
no-cache
করেন না বা "সর্বদা শেষের থেকে শেষের দিকে ডাউনলোডগুলি জোর করে", কমপক্ষে সমস্ত ব্রাউজারে নয়। স্পেসিফিকেশনটি কেবল বলেছে যে ব্রাউজারকে অবশ্যই ক্যাশেটি বৈধ করে তুলবে।
সর্বোচ্চ-বয়স = 0
এটি রিফ্রেশ ক্লিক করার সমতুল্য , যার অর্থ আমার কাছে সর্বশেষতম অনুলিপিটি না থাকলে আমার কাছে সর্বশেষ অনুলিপি দিন।
নো-ক্যাশে
রিফ্রেশ ক্লিক করার সময় এটি শিফট ধারণ করে , যার অর্থ, যাই হোক না কেন সবকিছুই পুনরায় করুন।
no-store
পুরানো প্রশ্ন এখন, তবে অন্য যে কেউ যদি আমার মতো একটি অনুসন্ধানের মধ্য দিয়ে আসে তবে মনে হয় যে পিছনে এবং ফরোয়ার্ড বোতামগুলি ব্যবহার করার সময় আইই 9 এটি ব্যবহার করবে রিসোর্সের আচরণকে কনফিগার করতে। যখন সর্বোচ্চ-বয়স = 0 ব্যবহৃত হয়, তখন কোনও পিছনে / ফরোয়ার্ড প্রেসে কোনও সংস্থান দেখার সময় ব্রাউজারটি সর্বশেষ সংস্করণটি ব্যবহার করবে। যদি নো-ক্যাশে ব্যবহার করা হয় তবে রিসোর্সটি পুনরায় পাঠানো হবে।
আইই 9 ক্যাশে সম্পর্কিত আরও বিশদটি এই এমএসডিএন ক্যাচিং ব্লগ পোস্টে দেখা যাবে ।
আইই 8 এবং ফায়ারফক্স 3.5 এর সাথে আমার সাম্প্রতিক পরীক্ষাগুলিতে, মনে হয় উভয়ই আরএফসি-সম্মতিযুক্ত। যাইহোক, তারা মূল সার্ভারের সাথে তাদের "বন্ধুত্ব" থেকে পৃথক। আইই 8 no-cache
একই শব্দার্থবিজ্ঞানের সাথে প্রতিক্রিয়াগুলি আচরণ করে max-age=0,must-revalidate
। ফায়ারফক্স ৩.৫ এর no-cache
সাথে সমতুল্য বলে মনে হচ্ছে no-store
, যা পারফরম্যান্স এবং ব্যান্ডউইথের ব্যবহারের জন্য ব্যয় করে।
স্কুইড ক্যাশে, ডিফল্টরূপে, no-cache
ফায়ারফক্সের মতো কোনও শিরোনাম দিয়ে কখনই কিছু সঞ্চয় করে না বলে মনে হয় ।
আমার পরামর্শটি public,max-age=0
হ'ল সংবেদনশীল সংস্থানগুলির জন্য সেট করুন যা আপনি প্রতিটি অনুরোধে সতেজতা পরীক্ষা করতে চান, তবে তবুও ক্যাশিংয়ের পারফরম্যান্স এবং ব্যান্ডউইথ সুবিধার অনুমতি দিন। একই বিবেচ্য প্রতি ব্যবহারকারী আইটেমগুলির জন্য, ব্যবহার করুন private,max-age=0
।
আমি no-cache
সম্পূর্ণরূপে ব্যবহার এড়াব, কারণ এটি মনে হয় এটির কিছু কার্যকারিতা সমতুল্য কিছু ব্রাউজার এবং জনপ্রিয় ক্যাশে দ্বারা জারজ করা হয়েছে no-store
।
অতিরিক্তভাবে, আকামাই এবং লাইমলাইট অনুকরণ করবেন না। যদিও তারা মূলত তাদের প্রাথমিক ব্যবসা হিসাবে বিশাল ক্যাচিং অ্যারে চালায় এবং বিশেষজ্ঞ হওয়া উচিত, তাদের নেটওয়ার্ক থেকে আরও ডেটা ডাউনলোড করার কারণেই তাদের প্রকৃত আগ্রহ রয়েছে। গুগল হয় অনুকরণের জন্য ভাল পছন্দ নাও হতে পারে। তারা রিসোর্সের উপর নির্ভর করে এলোমেলোভাবে ব্যবহার max-age=0
বা ব্যবহার করে বলে মনে হচ্ছে no-cache
।
private,max-age=0
।
সর্বোচ্চ-বয়স যখন মধ্যবর্তী ক্যাশে বাধ্যতামূলক হয় তখন সর্বাধিক বয়স = 0 নির্দেশের মাধ্যমে পুনর্নির্মাণ করতে বাধ্য করা হয় এটির নিজস্ব ক্যাশে প্রবেশ, এবং ক্লায়েন্ট অনুরোধটিতে তার নিজস্ব বৈধকারক সরবরাহ করেছে the সরবরাহকৃত বৈধকারক বর্তমানে ক্যাশে প্রবেশের সাথে সঞ্চিত বৈধ সংস্থার থেকে পৃথক হতে পারে। এই ক্ষেত্রে, ক্যাশে মাই ছাড়াই নিজের অনুরোধ তৈরি করতে বৈধ ব্যবহারকারীর ব্যবহার করে অভিজাত স্বচ্ছতা প্রভাবিত করে। তবে, বৈধকারীর পছন্দ পারফরম্যান্সকে প্রভাবিত করতে পারে। সেরা পদ্ধতির জন্য হয় মধ্যবর্তী ক্যাশে তার অনুরোধ করার সময় তার নিজস্ব বৈধকারক ব্যবহার করতে। যদি সার্ভার উত্তর দেয় 304 (পরিবর্তিত নয়) দিয়ে, তারপরে ক্যাশে ক্লায়েন্টকে তার এখন যাচাইকৃত অনুলিপি ফিরিয়ে দিতে পারে একটি 200 (ঠিক আছে) প্রতিক্রিয়া সঙ্গে। যদি সার্ভারটি কোনও নতুন সত্তা এবং ক্যাশে যাচাইকারীর সাথে জবাব দেয়, তবে, মধ্যবর্তী ক্যাশে প্রদত্ত একের সাথে প্রত্যাশিত বৈধকারীর তুলনা করতে পারে শক্তিশালী তুলনা ফাংশন ব্যবহার করে ক্লায়েন্টের অনুরোধ। যদি ক্লায়েন্টের বৈধকারক হয় উত্স সার্ভারের সমান, তারপরে মধ্যবর্তী ক্যাশে কেবল 304 ফেরত আসে (না সংশোধিত)। অন্যথায়, এটি 200 (ঠিক আছে) প্রতিক্রিয়া সহ নতুন সত্তাকে ফিরিয়ে দেয়। যদি কোনও অনুরোধে নো-ক্যাশের নির্দেশিকা অন্তর্ভুক্ত থাকে তবে এতে মিনি-টাটকা অন্তর্ভুক্ত করা উচিত নয়, সর্বোচ্চ-বাসি বা সর্বাধিক বয়স।
সৌজন্য: http://www.w3.org/Potocols/rfc2616/rfc2616-sec14.html#sec14.9.4
এটি উত্তর হিসাবে গ্রহণ করবেন না - এর সত্যিকারের ব্যবহার বুঝতে আমাকে এটি পড়তে হবে :)
আমি খুব কমই একজন ক্যাচিং বিশেষজ্ঞ, তবে মার্ক নটিংহাম। এখানে তার ক্যাশিং ডক্স রয়েছে । রেফারেন্স বিভাগেও তাঁর দুর্দান্ত লিঙ্ক রয়েছে।
এই দস্তাবেজগুলির আমার পাঠের উপর ভিত্তি করে, দেখে মনে হচ্ছে max-age=0
ক্যাশে অনুরোধগুলির অনুরোধগুলিতে একটি ক্যাশেড প্রতিক্রিয়া প্রেরণ করতে পারে যা "একই সময়ে" যেখানে "একই সময়" এর অর্থ তারা একসাথে খুব কাছাকাছি দেখায় ক্যাশে, তবে no-cache
তা না ।
যাইহোক, এটি লক্ষণীয় যে কয়েকটি মোবাইল ডিভাইস, বিশেষত আইফোন / আইপ্যাডের মতো অ্যাপল পণ্যগুলি নো-ক্যাশে, নো-স্টোরের মতো শিরোনামকে পুরোপুরি উপেক্ষা করে: মেয়াদ শেষ হয়: 0, বা অন্য যে কোনও কিছু আপনি পুনরায় ব্যবহার না করার জন্য তাদের বাধ্য করতে চেষ্টা করতে পারেন ফর্ম পৃষ্ঠাগুলি।
এটি আমাদের মাথাব্যথার শেষের কারণ ঘটেনি কারণ আমরা কোনও ব্যবহারকারীর আইপ্যাডকে একটি ফর্ম প্রক্রিয়াটির মধ্য দিয়ে পৌঁছেছেন এমন একটি পৃষ্ঠায় ঘুমিয়ে রেখে বলার চেষ্টা করি, 3 এর 2 তম পদক্ষেপ বলুন এবং তারপরে ডিভাইসটি স্টোর / ক্যাশে নির্দেশনা, এবং যতদূর আমি বলতে পারি, কেবল পৃষ্ঠার শেষ অবস্থা থেকে ভার্চুয়াল স্ন্যাপশট কী তা গ্রহণ করে, এটি স্পষ্টভাবে যা বলা হয়েছিল তা উপেক্ষা করে এবং কেবল এটিই নয় যে কোনও পৃষ্ঠা সংরক্ষণ করা উচিত নয় , এবং এটি আবার যাচাই না করে এটি সংরক্ষণ করে যা অন্যান্য বিষয়গুলির মধ্যে সমস্ত ধরণের অদ্ভুত সেশন সমস্যাগুলির দিকে নিয়ে যায়।
কেউ যদি এদিকে আসেন তবে আমি কেবল এটি যুক্ত করছি এবং কেন তারা বিশেষত আইফোন এবং আইপ্যাডগুলির সাথে সেশন ত্রুটি পাচ্ছে তা বুঝতে পারছি না, যা এ অঞ্চলের সবচেয়ে খারাপ অপরাধী বলে মনে হয়।
আমি এই সমস্যাটি নিয়ে মোটামুটি বিস্তৃত ডিবাগার পরীক্ষা করেছি, এবং এটি আমার উপসংহারে, ডিভাইসগুলি এই নির্দেশিকাগুলি সম্পূর্ণ উপেক্ষা করে।
এমনকি নিয়মিত ব্যবহারেও, আমি দেখতে পেয়েছি যে কিছু মোবাইলও নতুন সংস্করণগুলি পুরোপুরি বলতে পেরে ব্যর্থ হয়: মেয়াদ শেষ হয়ে যায়: 0 তারপরে শেষের পরিবর্তিত তারিখগুলি পরীক্ষা করে এটি নতুন পাওয়া উচিত কিনা তা নির্ধারণ করে।
এটি সহজভাবে ঘটে না, তাই আমাকে যা করতে বাধ্য করা হয়েছিল তা হ'ল সিএসএস / জেএস ফাইলগুলিতে ক্যোয়ারী স্ট্রিং যুক্ত করা উচিত যা আপডেটগুলি জোর করে বলার দরকার ছিল, যা বোকা মোবাইল ডিভাইসগুলিকে এমন ফাইলটিকে ভেবে ভেবে দেখায় যে এটিতে নেই, যেমন: আমার .css? v = 1, তারপরে সিএসএস / জেএস আপডেটের জন্য v = 2। এটি মূলত কাজ করে।
ব্যবহারকারীর ব্রাউজারগুলিও, যাইহোক, ২০১ 2016-এর মতো, তাদের ডিফল্ট হিসাবে ছেড়ে দেওয়া হয়েছে, যেমন আমি ক্রমাগত আবিষ্কার করি (আমরা আমাদের সাইটে প্রচুর পরিবর্তন এবং আপডেট করি) এ জাতীয় ফাইলগুলিতে সর্বশেষ পরিবর্তিত তারিখগুলি পরীক্ষা করতে ব্যর্থ হয়, তবে ক্যোয়ারী স্ট্রিং পদ্ধতি যে সমস্যাটি স্থির করে। এটি ক্লায়েন্ট এবং অফিসের লোকদের সাথে আমি লক্ষ্য করেছি যাঁরা তাদের ব্রাউজারগুলিতে বেসিক সাধারণ ব্যবহারকারী ডিফল্ট ব্যবহার করেন এবং সিএসএস / জেএস ইত্যাদির সাথে ক্যাশে সংক্রান্ত সমস্যা সম্পর্কে সচেতনতা রাখেন না, প্রায়শই নতুন সিএসএস / জেএস পরিবর্তনের ক্ষেত্রে পেতে ব্যর্থ হন, যার অর্থ তাদের ব্রাউজারগুলির ডিফল্ট, বেশিরভাগ এমএসআইই / ফায়ারফক্স, তারা যা করতে বলা হচ্ছে তা করছে না, তারা পরিবর্তনগুলি উপেক্ষা করে এবং শেষের পরিবর্তিত তারিখগুলিকে উপেক্ষা করে এবং মেয়াদোত্তীর্ণ: 0 সেটাকেও স্পষ্টভাবে সেট করে না।
এটি অনেক ভাল প্রযুক্তিগত তথ্য সহ একটি ভাল থ্রেড ছিল, তবে বিশেষত মোবাইল ডিভাইসগুলিতে এই জিনিসগুলির জন্য সমর্থন কতটা খারাপ তা লক্ষ করাও গুরুত্বপূর্ণ। প্রতি কয়েকমাস আমাকে তাদের প্রাপ্ত শিরোলেখ আদেশগুলি অনুসরণ করতে ব্যর্থ হওয়ার বিরুদ্ধে বা সেই আদেশগুলি সঠিকভাবে বাধা দেওয়ার জন্য সুরক্ষার আরও স্তর যুক্ত করতে হয়।
(আশ্চর্যজনকভাবে) উল্লেখ করা হয়নি এমন একটি জিনিস হ'ল একটি অনুরোধ স্পষ্টভাবে নির্দেশ করতে পারে যে max-stale
নির্দেশটি ব্যবহার করে এটি বাসি ডেটা গ্রহণ করবে । সেক্ষেত্রে সার্ভার যদি প্রতিক্রিয়া জানায় max-age=0
তবে ক্যাশে কেবল প্রতিক্রিয়ার বাসি বিবেচনা করবে এবং ক্লায়েন্টের অনুরোধ [যা সম্ভাব্য-বাসি ডেটা চেয়েছিল] মেটানোর জন্য এটি ব্যবহার করতে মুক্ত হবে free বিপরীতে, যদি সার্ভার প্রেরণ করে no-cache
যে সত্যই ক্লায়েন্টের কোনও অনুরোধ ট্রাম্প করে (সাথে max-stale
) বাসীর ডেটার জন্য, যেমন ক্যাশে আবশ্যক হবে।
পার্থক্যটি হ'ল নো-ক্যাশে (ফায়ারফক্সে কোনও দোকান নেই) যে কোনও ধরণের ক্যাশে প্রতিরোধ করে। সুরক্ষিত সামগ্রীযুক্ত ডিস্কে লিখিত পাতাগুলি এবং পিছনের বোতামটি পুনরায় দেখা হলেও এমন পৃষ্ঠাগুলির জন্য সর্বদা আপডেট করা উচিত That
সর্বাধিক বয়স = 0 ইঙ্গিত করে যে একটি ক্যাশে প্রবেশের সিঁড়ি এবং এটি পুনরায় বৈধকরণের প্রয়োজন, তবে ক্যাচিং প্রতিরোধ করে না। প্রায়শই ব্রাউজারগুলি কেবল ব্রাউজার সেশনে একবারে সংস্থানগুলি বৈধ করে তোলে, তাই সাইটটি একটি নতুন অধিবেশনটিতে না আসা পর্যন্ত সামগ্রীটি আপডেট নাও হতে পারে।
সাধারণত, ব্রাউজারগুলি মেয়াদোত্তীর্ণ ক্যাশে এন্ট্রিগুলি মুছে ফেলবে না, যদি না ব্রাউজারের ক্যাশে পূর্ণ থাকে তবে তারা নতুন সামগ্রীর জন্য স্থান দাবি করে না। নো-স্টোর ব্যবহার করে, নো-ক্যাশে কোনও ক্যাশে প্রবেশ স্পষ্টভাবে মুছে ফেলার অনুমতি দেয়।
max-age=0
উপায়টি যদি আপনি বোঝাতে চান তবে ক্যাশে করার অনুমতি দেওয়া হয়েছে তবে রিসোর্সটি পুনরায় চালু করতে হবে এবং no-store
আপনি যদি না চান তবে প্রতিক্রিয়াটি ক্যাশে সংরক্ষণ করা উচিত। no-cache
এলোমেলোভাবে এই ইউজার এজেন্ট বিক্রেতা এবং সংস্করণ সংখ্যা এবং ট্রান্সফার প্রোটোকল উপর নির্ভর করে উভয় মানে মনোনীত করা হয়।