హోమ్ పేజీ
/
యాప్‌లు
/
HTTP కేష్-కంట్రోల్ హెడర్ కాలిక్యులేటర్
HTTP కేష్-కంట్రోల్ హెడర్ కాలిక్యులేటర్

HTTP కేష్-కంట్రోల్ హెడర్ కాలిక్యులేటర్

max-age, s-maxage మరియు రీవాలిడేషన్ ఎంపికల నుండి చెల్లుబాటు అయ్యే HTTP Cache-Control హెడర్‌ను రూపొందించండి, ప్రతి డైరెక్టివ్ అర్థాన్ని సరళంగా తెలుసుకోండి.

max-age, s-maxage మరియు రీవాలిడేషన్ ఎంపికల నుండి చెల్లుబాటు అయ్యే HTTP Cache-Control హెడర్‌ను రూపొందించండి, ప్రతి డైరెక్టివ్ అర్థాన్ని సరళంగా తెలుసుకోండి.

రెస్పాన్స్ ఎంతసేపు ఫ్రెష్‌గా ఉంటుంది. వదిలివేయడానికి 0 వాడండి.

CDN వంటి షేర్డ్ కేష్‌లకు Max-Ageను ఓవర్‌రైడ్ చేస్తుంది. వదిలివేయడానికి 0 వాడండి. Publicకు మాత్రమే వర్తిస్తుంది.

బ్యాక్‌గ్రౌండ్‌లో కొత్త వెర్షన్ తెచ్చేటప్పుడు పాత కాపీని చూపే అదనపు సమయం.

ఆరిజిన్ సర్వర్ ఎర్రర్ ఇస్తే, పాత కాపీని చూపే అదనపు సమయం.

ఈ యాప్‌ను షేర్ చేయండి

HTTP కేష్-కంట్రోల్ హెడర్ కాలిక్యులేటర్

Cache-Control HTTP హెడర్ బ్రౌజర్‌లు, ప్రాక్సీలు, CDNలకు ఒక రెస్పాన్స్‌ను ఎలా - ఎంతసేపు - కేష్ చేయవచ్చో తెలియజేస్తుంది. దీన్ని తప్పుగా సెట్ చేయడం వల్ల యూజర్లకు పాత (stale) కంటెంట్ కనిపించడం లేదా కేష్ నుండి అందించాల్సిన రిక్వెస్ట్‌లు నేరుగా సర్వర్‌కు వెళ్లడం జరుగుతుంది. ఈ టూల్ కొన్ని సాధారణ ఎంపికల నుండి సరైన Cache-Control హెడర్‌ను నిర్మించి, ప్రతి డైరెక్టివ్ అర్థాన్ని వివరిస్తుంది.

Cache-Control అంటే ఏమిటి?

RFC 9111 (HTTP Caching స్పెసిఫికేషన్) నిర్వచించిన రెస్పాన్స్ హెడర్ Cache-Control. ఒక సాధారణ విలువ ఇలా ఉంటుంది:

Cache-Control: public, max-age=3600, s-maxage=600, stale-while-revalidate=86400

కామాతో వేరు చేయబడిన ప్రతి భాగం ఒక డైరెక్టివ్. కొన్నింటికి సంఖ్యా విలువ ఉంటుంది (max-age=3600 వంటివి), కొన్ని కేవలం ఫ్లాగ్‌లు (must-revalidate వంటివి).

ఈ కాలిక్యులేటర్ కవర్ చేసే డైరెక్టివ్‌లు

  • కేషబిలిటీ - వీటిలో సరిగ్గా ఒకటి:
    • public - ఏ కేష్ అయినా (బ్రౌజర్, ప్రాక్సీ, CDN) రెస్పాన్స్‌ను నిల్వ చేయవచ్చు.
    • private - యూజర్ బ్రౌజర్ మాత్రమే దీన్ని కేష్ చేయగలదు; CDN వంటి షేర్డ్ కేష్‌లు చేయకూడదు.
    • no-cache - కేష్ నిల్వ చేయవచ్చు, కానీ ఉపయోగించే ముందు ప్రతిసారీ సర్వర్‌తో రీవాలిడేట్ చేయాలి.
    • no-store - ఏదీ కేష్ చేయబడదు; ప్రతి రిక్వెస్ట్ నేరుగా ఆరిజిన్ సర్వర్‌కు వెళుతుంది.
  • max-age=<సెకన్లు> - రెస్పాన్స్ సృష్టించిన క్షణం నుండి ఎంతసేపు ఫ్రెష్‌గా పరిగణించబడుతుంది.
  • s-maxage=<సెకన్లు> - max-age లాగే, కానీ షేర్డ్ కేష్‌లకు (CDN, రివర్స్ ప్రాక్సీ) మాత్రమే వర్తిస్తుంది; బ్రౌజర్‌లు దీన్ని విస్మరిస్తాయి.
  • stale-while-revalidate=<సెకన్లు> - ఫ్రెష్‌నెస్ ముగిసిన తర్వాత, బ్యాక్‌గ్రౌండ్‌లో కొత్తది తెచ్చేటప్పుడు ఈ అదనపు సెకన్ల వరకు కేష్ పాత కాపీని అందించవచ్చు.
  • stale-if-error=<సెకన్లు> - రీవాలిడేషన్ సమయంలో ఆరిజిన్ సర్వర్ ఎర్రర్ ఇస్తే, ఎర్రర్ చూపించే బదులు ఈ సెకన్ల వరకు పాత కాపీని అందించవచ్చు.
  • must-revalidate - ఒకసారి స్టేల్ అయిన తర్వాత, విజయవంతమైన రీవాలిడేషన్ లేకుండా మళ్లీ అందించకూడదు.
  • immutable - ఫ్రెష్‌గా ఉన్నంత కాలం రెస్పాన్స్ బాడీ ఎప్పటికీ మారదని బ్రౌజర్‌కు తెలియజేస్తుంది, కాబట్టి రీలోడ్‌లో కూడా రీవాలిడేషన్ అవసరం లేదు.
  • no-transform - మధ్యలో ఉన్న ప్రాక్సీలు రెస్పాన్స్ బాడీని మార్చకుండా (ఇమేజ్‌లను మళ్లీ కంప్రెస్ చేయడం వంటివి) నిరోధిస్తుంది.

ఈ కాలిక్యులేటర్ ఎలా పని చేస్తుంది

freshness lifetime (browser)=s-maxage present?    max-age  :  max-age\text{freshness lifetime (browser)} = \text{s-maxage present?} \;\to\; \text{max-age} \; : \; \text{max-age}

CDN వంటి షేర్డ్ కేష్‌లకు, s-maxage (ఉంటే) ఎల్లప్పుడూ max-age కంటే ప్రాధాన్యత పొందుతుంది; బ్రౌజర్‌లు s-maxageను పూర్తిగా విస్మరించి కేవలం max-ageను మాత్రమే చూస్తాయి. కాలిక్యులేటర్ సరైన క్రమంలో (మొదట కేషబిలిటీ రకం, తర్వాత సంఖ్యా డైరెక్టివ్‌లు, చివరగా బూలియన్ ఫ్లాగ్‌లు) హెడర్ స్ట్రింగ్‌ను నిర్మిస్తుంది, సున్నా/ఆఫ్‌గా ఉన్నవాటిని వదిలివేస్తుంది, ఫలిత వ్యవధిని సెకన్లు, నిమిషాలు, గంటలు, రోజులుగా విభజించి చూపిస్తుంది.

ఒక ఉదాహరణ

CDN ద్వారా అందించే, ప్రచురించిన తర్వాత ఎప్పటికీ మారని వెర్షన్డ్ స్టాటిక్ ఫైల్ (app.a1b2c3.js వంటిది) మీరు అందిస్తున్నారని అనుకుందాం:

  • కేష్ రకం: public
  • Max-Age: 31536000 (1 సంవత్సరం)
  • s-maxage: 0 (అవసరం లేదు)
  • Immutable: Yes

ఇది దీన్ని ఉత్పత్తి చేస్తుంది:

Cache-Control: public, max-age=31536000, immutable

బ్రౌజర్‌లు ఈ ఫైల్‌ను పూర్తి సంవత్సరం కేష్ చేసి, ఎప్పటికీ మళ్లీ తనిఖీ చేయవు.

ఈ టూల్‌ను ఎలా ఉపయోగించాలి

  1. కేషబిలిటీ రకాన్ని ఎంచుకోండి (public, private, no-cache, లేదా no-store).
  2. Max-Ageను సెకన్లలో నమోదు చేయండి (వదిలివేయడానికి 0గా ఉంచండి).
  3. అవసరమైతే s-maxage, stale-while-revalidate, stale-if-errorలను సెట్ చేయండి.
  4. must-revalidate, immutable, no-transformలను అవసరాన్ని బట్టి మార్చండి.
  5. ఉత్పత్తి అయిన హెడర్ విలువను నేరుగా మీ సర్వర్, రివర్స్ ప్రాక్సీ, లేదా CDN కాన్ఫిగరేషన్‌లో వాడండి.