Cache-Control हेडर जनरेटर
सादे टॉगल और मानवीय समय इकाइयों से एक सही HTTP Cache-Control रिस्पॉन्स हेडर बनाएँ, सीधे अपने ब्राउज़र में।
आपका Cache-Control हेडर आपके चुने गए विकल्पों से आपके ब्राउज़र में स्थानीय रूप से इकट्ठा होता है, और जो आप कॉन्फ़िगर करते हैं वह किसी server पर अपलोड या स्टोर नहीं होता।
किसी server को सेट कर रहे हैं? nginx Config Generator आज़माएँ।
Cache-Control हेडर जनरेटर के बारे में
यह cache-control हेडर जनरेटर HTTP caching directives के भ्रमित करने वाले सेट को कुछ सादे टॉगल में बदल देता है। public या private, no-store, no-cache, must-revalidate, proxy-revalidate, या immutable को पलटें, और max-age, s-maxage, stale-while-revalidate और stale-if-error जैसे lifetimes को सेकंड गिनने के बजाय घंटों, दिनों या वर्षों जैसी मानवीय इकाइयों में सेट करें। जैसे-जैसे आप विकल्प बदलते हैं, टूल directives को canonical क्रम में संयोजित करता है, सादी भाषा में बताता है कि मौजूदा हेडर ठीक क्या करता है, और no-store के साथ max-age जैसे विरोधाभासी संयोजनों को चिह्नित करता है। Presets रोज़मर्रा के मामले कवर करते हैं: एक साल का immutable static asset, हमेशा-revalidate HTML, कभी-न-store private data, और एक विभाजित CDN-बनाम-browser नीति। raw हेडर या तैयार nginx, Apache और HTML meta स्निपेट कॉपी करें। सब कुछ आपके डिवाइस पर, ब्राउज़र में चलता है।
विशेषताएँ
- public, private, no-store, no-cache, must-revalidate, proxy-revalidate और immutable के लिए टॉगल
- max-age, s-maxage, stale-while-revalidate और stale-if-error के लिए मानवीय समय इनपुट (सेकंड से वर्षों तक)
- संपादन करते ही directives को एक साफ़ canonical क्रम में संयोजित करता है
- मौजूदा हेडर ठीक क्या करता है इसकी सादी-भाषा व्याख्या
- पारस्परिक-बहिष्करण नियम लागू करता है और विरोधाभासी संयोजनों के बारे में चेतावनी देता है
- static assets, हमेशा-revalidate HTML, private data और विभाजित CDN/browser caching के लिए एक-क्लिक presets
- raw हेडर, nginx add_header, Apache Header set और एक HTML meta टैग के लिए कॉपी-तैयार स्निपेट
- पूरी तरह आपके ब्राउज़र में चलता है, इसलिए जो आप कॉन्फ़िगर करते हैं वह आपके डिवाइस से बाहर नहीं जाता
Cache-Control हेडर जनरेटर का उपयोग कैसे करें
- एक preset चुनें या शुरू से शुरू करें और public या private चुनें।
- अपनी ज़रूरत के directives टॉगल करें, जैसे no-cache, must-revalidate या immutable।
- max-age जैसे lifetimes को एक संख्या और एक इकाई (घंटे, दिन, वर्ष) से दर्ज करें।
- बना हुआ हेडर मान और उसके नीचे की सादी-भाषा व्याख्या पढ़ें।
- raw हेडर या आपको जो nginx, Apache या HTML meta स्निपेट चाहिए उसे कॉपी करें।
उदाहरण
इनपुट
public + immutable + max-age = 1 year
आउटपुट
Cache-Control: public, max-age=31536000, immutable
क्लासिक fingerprinted static-asset नीति: एक साल के लिए cache करें और कभी revalidate न करें।
सामान्य त्रुटियाँ और समस्या निवारण
- आपने no-store सेट किया पर max-age या immutable भी जोड़ा और वे गायब हो गए। — no-store का मतलब है कुछ भी कभी cache नहीं होता, इसलिए यह हर दूसरे directive को ओवरराइड करता है। यदि आप वास्तव में एक cached-पर-नियंत्रित रिस्पॉन्स चाहते हैं तो no-store बंद करें।
- immutable का कोई असर नहीं दिखता। — immutable केवल तभी मायने रखता है जब कोई रिस्पॉन्स अभी fresh हो, इसलिए इसे एक गैर-शून्य max-age के साथ जोड़ें। max-age के बिना इसके लागू होने के लिए कोई fresh विंडो नहीं होती।
- हेडर private होने पर आपका CDN s-maxage को अनदेखा कर देता है। — private shared caches को रिस्पॉन्स स्टोर करने से बिल्कुल रोकता है, इसलिए s-maxage, जो केवल shared caches को लक्षित करता है, कभी लागू नहीं होता। यदि आप चाहते हैं कि CDN इसे cache करे तो public का उपयोग करें।
- लंबे max-age के साथ no-cache ऐसे व्यवहार करता है जैसे यह cache ही न हो। — no-cache हर पुनः-उपयोग से पहले origin के साथ revalidation को बाध्य करता है, जो max-age द्वारा दी गई freshness को प्रभावी रूप से रद्द कर देता है। अपने लक्ष्य के आधार पर दोनों में से एक हटा दें।
अक्सर पूछे जाने वाले प्रश्न
- no-cache और no-store में क्या अंतर है?
- no-store का मतलब है रिस्पॉन्स कभी किसी cache में नहीं लिखा जाना चाहिए, इसलिए हर अनुरोध origin पर वापस जाता है। no-cache रिस्पॉन्स स्टोर करने की अनुमति देता है, पर cache को इसे दोबारा परोसने से पहले origin के साथ revalidate करना होता है। no-store एक प्रति न रखने के बारे में है; no-cache हमेशा जाँचने के बारे में है कि रखी हुई प्रति अभी भी वर्तमान है।
- Cache-Control हेडर में immutable क्या करता है?
- immutable ब्राउज़र को बताता है कि संसाधन अपने max-age की अवधि में कभी नहीं बदलेगा, इसलिए यह revalidation छोड़ सकता है भले ही उपयोगकर्ता reload दबाए। यह app.9f2c.js जैसी versioned या fingerprinted फ़ाइलों के लिए है, जहाँ एक नया build पुराने को अधिलेखित करने के बजाय एक नए URL के तहत आता है।
- max-age और s-maxage कैसे भिन्न हैं?
- max-age तय करता है कि रिस्पॉन्स किसी भी cache में, ब्राउज़र सहित, कितनी देर fresh रहता है। s-maxage max-age को ओवरराइड करता है पर केवल CDNs और proxies जैसे shared caches के लिए। दोनों सेट करने से आप रिस्पॉन्स को ब्राउज़र में थोड़ी देर cache कर सकते हैं जबकि इसे अपने CDN पर अधिक देर रख सकते हैं।
- मुझे public बनाम private कब उपयोग करना चाहिए?
- public, CDNs और proxies जैसे shared caches को ब्राउज़र के साथ रिस्पॉन्स स्टोर करने देता है। private स्टोरेज को व्यक्तिगत उपयोगकर्ता के ब्राउज़र तक सीमित करता है, जो व्यक्तिगत या authenticated रिस्पॉन्स के लिए सही विकल्प है जिन्हें किसी shared cache से दूसरे उपयोगकर्ता को नहीं परोसा जाना चाहिए।
- stale-while-revalidate क्या करता है?
- stale-while-revalidate एक cache को थोड़ा stale रिस्पॉन्स तुरंत परोसने देता है जबकि यह पृष्ठभूमि में एक fresh प्रति लाता है। उपयोगकर्ताओं को तुरंत रिस्पॉन्स मिलता है और cache अगले अनुरोध के लिए खुद को अपडेट कर लेता है, जो किसी संसाधन के समाप्त होने के क्षण को सहज बना देता है।
- क्या मेरी कॉन्फ़िगरेशन किसी server पर भेजी जाती है?
- नहीं। हेडर, व्याख्या और स्निपेट सभी आपके ब्राउज़र में इकट्ठे होते हैं जैसे-जैसे आप विकल्प टॉगल करते हैं, इसलिए कॉन्फ़िगरेशन आपके डिवाइस पर स्थानीय रूप से प्रोसेस होती है और कुछ भी अपलोड नहीं होता।
संबंधित टूल
सभी ArrayKit टूल