STATUS IS UPWIKI YA UBORESHAJI WA TOVUTI
20Harakisha
Utendaji na utoaji / Harakisha

Mwongozo wa Cache ya Kivinjari kwa Wamiliki wa Tovuti

Weka sheria wazi za HTTP za cache ili ziweze kuzuia upakuaji usiohitajika wakati wa kutembelea tena bila kuwafunga wageni kwenye kurasa za zamani au yaliyomo yaliyoegeshwa kibinafsi yasiyo salama.

Mwongozo wa Cache ya Kivinjari kwa Wamiliki wa Tovuti — MWONGOZO WA KIONYESHI
SOMA
7 dakika
VYANZO
6
Thibitisha tena
2027-03-27
imehakikiwa
Mkaguzi wa utendaji wa wavuti na uhandisi wa utoaji
JIBU MFUPI

Anza na uamuzi.

Tumia sheria tofauti za cache kwa kila aina ya URL. Toa maisha marefu ya uhai (freshness lifetime) kwa faili ambazo yaliyomo yao hayabadiliki kwenye URL hiyo, kama JavaScript, CSS, font, na picha zilizo na jina lenye fingerprint (hash), na zile zilizo versioned. Kwa HTML na majibu mengine yasiyo na version, tumia sera inayofanya kivinjari kuthibitisha kabla ya kutumia tena wakati uhai una umuhimu.

Anza na vichwa vya Cache-Control vilivyo wazi, kisha thibitisha vichwa na tabia ya kivinjari katika mazingira ya staging. Panga majibu yanayopendelea uthibitisho pamoja na ETag na, inapopatikana, Last-Modified. Tibu majibu ya kibinafsi, akaunti, checkout, na yaliyo nyeti tofauti na kurasa za umma. SIU inatumia kazi hii kama uboreshaji wa uptime wa kuzuia: inapunguza kazi isiyo ya lazima kwa origin na inazuia hitilafu za release zinazohusiana na cache kabla hazijapelekea tovuti isiyoweza kutumika.

MWONGOZO WA KIONYESHI

Tazama kazi kama mfumo.

Tumia ramani hii kuunganisha maamuzi ya makala kabla ya kutekeleza mbinu binafsi.

SIUHarakisha
01Panga sera kwa rasilimali, sio kwa server
02Tumia maneno ya Cache-Control kwa usahihi
03Toa version kwa assets zisizobadilika kabla ya kuzipa maisha marefu
04Fanya HTML kuwa ya sasa kupitia uthibitisho, sio caching ndefu
01

Panga sera kwa rasilimali, sio kwa server

Fanya hesabu ya URL za uwakilishi kabla ya kubadilisha vichwa: ukurasa wa nyumbani, ukurasa wa maudhui, application shell, CSS, JavaScript, picha, font, API, kuingia (login), akaunti, checkout, na upakuaji. Kwa kila moja, andika kama jibu ni la umma au la kibinafsi, kama URL yake hubadilika wakati bytes zake zinabadilika, na ni haraka kiasi gani marekebisho yanapaswa kufika kwa watumiaji.

Tengeneza matriisi ya sera kutoka kwa hesabu hiyo. Asset ya umma iliyotambulishwa kwa maudhui (content-addressed) inahitaji sheria tofauti na HTML kwenye anwani thabiti. Majibu bila Cache-Control bado yanaweza kukamatwa kwa mithili ya heuristics, hivyo sheria za wazi ni rahisi kujaribu.

Freshness lifetime

Muda ambao jibu lililohifadhiwa linaweza kutumika tena; max-age linaliweka kwa sekunde.

02

Tumia maneno ya Cache-Control kwa usahihi

Cache-Control inaeleza kwa vivinjari na shared caches jinsi ya kuhifadhi na kutumia jibu. max-age=N inaruhusu matumizi wakati bado ni fresh. s-maxage=N inaweka uhai wa shared-cache na inazitawala max-age pale, lakini vivinjari huviheshimu s-maxage. public inaruhusu cache yoyote; private inaruhusu caching ya kivinjari lakini inazuia uhifadhi kwenye shared-cache.

no-cache inaruhusu uhifadhi lakini inataka uthibitisho kutoka kwa origin kabla ya matumizi. no-store inamaanisha caches haziruhusiwi kuhifadhi jibu, lakini si udhibiti kamili wa faragha. Tumia must-revalidate wakati kutumika kwa yaliyosahaulika baada ya muda wa uhai ni yasiyokubalika; origin isiyopatikana inaweza kisha kutoa 504 badala ya fallback ya stale.

Epuka no-store kwa ujumla

Inafuta uhifadhi badala ya kuhitaji tu kuangalia; itumike kwa majibu ambayo kwa kweli hayapaswi kuhifadhiwa.

03

Toa version kwa assets zisizobadilika kabla ya kuzipa maisha marefu

URL ya asset iliyotolewa kwa version inajumuisha fingerprint ya maudhui au toleo, kama app.4f2c.js. Wakati bytes za asset zinabadilika, chapisha URL tofauti na sasisha rejeleo la HTML. Cache itaona rasilimali mpya, hivyo wageni watapakua asset mpya bila kuhitaji invalidation kufikia kila kivinjari.

Kwa representation ambayo haitabadilika wakati wa freshness lifetime yake, Cache-Control: max-age=31536000, immutable ni mtindo wa vitendo. immutable inasema kwa wateja wanaounga mkono kutoleta uthibitisho kwa masharti wakati bado ni fresh. Usitumie au max-age ya mwaka mmoja kwa faili inayoweza kubadilika yenye URL ileile. Hifadhi assets za fingerprint zilizotangulia wakati HTML iliyokaa bado inaweza kuziweka rejeleo.

HTML ni manifest

HTML huchagua URL za asset, hivyo ufuatiliaji wa release lazima uhifadhi kizazi kilichotajwa.

04

Fanya HTML kuwa ya sasa kupitia uthibitisho, sio caching ndefu

HTML kwa kawaida ina URL thabiti inayoonekana na binadamu na hubadilika kwa maudhui, rejeleo za asset, flag za kipengele, au taarifa za usalama. Mfano wa tahadhari wa HTML ya umma ni Cache-Control: no-cache pamoja na ETag na Last-Modified wakati jukwaa lako linaweza kuzitengeneza ipasavyo. Kivinjari huhifadhi body lakini hutumia ombi conditional kabla ya matumizi; jibu lisilobadilika linaweza kurudisha 304 Not Modified bila body.

ETag hutambulisha toleo la rasilimali. Kwenye jibu lililosahaulika, kivinjari kinaweza kuituma kwa If-None-Match; ikiwa inalingana, server inarejesha 304, vinginevyo inatuma representation mpya. Mwito wa RFC unapendelea kuonyesha ETag na Last-Modified kwenye jibu la 200 inapowezekana. no-cache haisihi dhamana ya uthibitisho kwenye navigation ya Back au Forward kwa sababu kivinjari kinaweza kurejesha snapshot ya history ya session.

Ubora wa validator

ETag lazima ibadilike wakati representation inabadilika; iteste kwenye origin na deployments.

05

Tenganisha utoaji wa umma na majibu yaliyo kibinafsi na yaliyo nyeti

Shared cache, kama CDN, inaweza kutumia jibu moja kwa watumiaji wengi. Usiruhusu itumike tena HTML ya akaunti au data za API maalum kwa watumiaji tofauti. Kwa maudhui ya kibinafsi ambayo yanaweza kuishi kwenye kivinjari, private, no-cache ni mwanzo mzuri: inazuia uhifadhi kwenye shared-cache na inahitaji uthibitisho. Kichwa cha Set-Cookie pekee hakizuizi caching.

Kwa majibu ambayo hayapaswi kuhifadhiwa, tumia no-store na pitia tena msimbo wa programu, sheria za CDN, service workers, hifadhi ya kivinjari, logi, na kurasa za hitilafu. Vichwa pekee si programu ya faragha, uzingatiaji, au usalama wa malipo. Waajiri wakaguzi wenye sifa za usalama, faragha, na malipo kuchambua mtiririko nyeti na mahitaji yanayotumika.

Mabadiliko ya uthibitisho

Testi kuingia (sign-in), kutoka (sign-out), kubadilisha akaunti, na mabadiliko ya ruhusa kwa caches za kivinjari na CDN zilizokolea (warm).

06

Acha mabadiliko ya cache yaliwezekane kurudishwa kama release iliyo na njia ya rollback

Chukua vichwa na tabia za body za msingi kwa maombi yasiyokuwa cached na ya kurudia kabla ya kubadilisha. Katika staging, deploy assets zilizo versioned kwanza, kisha HTML inayowarejelea, na jaribu HTML iliyohifadhiwa ya zamani dhidi ya origin mpya. Angalia njia za direct-origin na CDN kama zote zipo. Vichwa vya DevTools Network vinapaswa kuonyesha sera iliyokusudiwa na tabia za matumizi mara mbili.

Hifadhi manifest ya release ya URL za asset, sheria za vichwa, na toleo la mpangilio. Ikiwa release ina files za mtego zisizowiana, rejesha HTML inayofanya kazi, lakini usifanye overwrite ya faili iliyo fingerprinted. Elekeza HTML kwenye kizazi kilicho salama na uhifadhi vizazi vyote huku HTML zilizohifadhiwa zinaweza kuziweka. Purge ya shared-cache haiwezi kuwalazimisha vivinjari kuvuruga jibu ambalo bado ni fresh.

Utatuzi wa proactive

Geuza kushindwa kwa mtihani wa vichwa, 404 za asset, na mizozo ya toleo kuwa mabadiliko kwenye checklist ya release inayofuata.

KITENDO / THIBITISHA

Mwongozo wako wa vitendo.

  1. 01

    Hesabu darasa la majibu

    Tenganisha URL za sampuli kama za umma au za kibinafsi, zinazobadilika au zilizo versioned.

    THIBITISHA: Inajumuisha HTML, assets, API, uthibitisho, akaunti, checkout, na hitilafu.
  2. 02

    Chukua vichwa vya sasa

    Rekodi Cache-Control, ETag, Last-Modified, Age, Vary, na status kwa origin na CDN.

    THIBITISHA: Kupanua kabla ya mabadiliko kunapatikana kwa kila sampuli.
  3. 03

    Fanya fingerprint kwa assets zinazobadilika

    Sababisha build ichapishe URL mpya ya asset wakati bytes zake zinabadilika.

    THIBITISHA: Asset iliyobadilika inatoa URL tofauti na rejeleo mpya la HTML.
  4. 04

    Weka sera wazi

    Tumia sheria za maisha marefu tu kwa URL zilizo immutable na versioned; tumia sera zinazopendelea uthibitisho kwa URL thabiti.

    THIBITISHA: Mitihani ya vichwa inaendana na sera iliyokusudiwa.
  5. 05

    Jaribu uthibitisho

    Angalia nyaraka isiyobadilika inarejesha 304 baada ya ombi la conditional na iliyobadilika inarejesha 200 na ETag mpya.

    THIBITISHA: Traces za staging zinaonyesha pande zote mbili.
  6. 06

    Fanya mipaka ya faragha

    Testi akaunti mbili, sign-out, mabadiliko ya nafasi (role), na njia nyeti zvikiwa na caches zilizokolea.

    THIBITISHA: Hakuna jibu la kibinafsi linalopita kwa watumiaji wengine.
  7. 07

    Thibitisha urafiki wa release

    Pakia HTML iliyohifadhiwa ya zamani baada ya release inayofuata.

    THIBITISHA: HTML ya zamani na ya sasa inapakia assets wanazowarejelea bila 404s au makosa ya script.
  8. 08

    Andika rollback

    Rekodi kizazi kilicho sawa, toleo la vichwa, mmiliki, na kipindi cha kuhifadhi asset ya zamani.

    THIBITISHA: Mazoezi yasiyo-ya-uzalishaji yanarejesha kizazi kilicho sawa bila kuhariri URL isiyobadilika.
MADA ZA MAJADILIANO

Linganisha faida na hasara, si data binafsi.

Tumia vichocheo hivi na timu yako au jamii ya wamiliki wa tovuti. Shiriki mbinu na masomo, lakini usibandike kamwe taarifa za uthibitishaji, rekodi za wateja, au maelezo ya miundombinu yasiyo ya umma.

  1. 01

    Ni madarasa gani ya URL kwenye tovuti yako yanayokosa urahisi wa kutambulika kama umma, ya kibinafsi, immutable, au yanayobadilika mara kwa mara, na mnaandikaje uamuzi huo?

  2. 02

    Ni jaribio gani la mpangilio wa release limekuwa la msaada zaidi kugundua mzozo wa HTML ya zamani na asset mpya kabla ya mgeni kuyakutana?

  3. 03

    Ni wapi sheria za CDN, programu, na cache ya kivinjari zinavyoshirikiana, na nani anayemiliki kuhakiki kwamba tabia zao zilizounganishwa zinaendana na sera iliyokusudiwa?

RASIMALI MAARUFU / ZINAZOAMINIKA

Fungua nyenzo za chanzo.

IETFRFC 9111: HTTP Caching ↗

Inafafanua uhai (freshness), uthibitisho (validation), directives za cache, invalidation, na mipaka ya taarifa nyeti.

Imehakikiwa 2026-09-27
IETFRFC 8246: HTTP Immutable Responses ↗

Inaelezea cache isiyobadilika (immutable), eneo lake, na masuala ya uharibifu.

Imehakikiwa 2026-09-27
MDN Web DocsHTTP caching ↗

Mwongozo wa vitendo juu ya validators, 304s, personalisation, na cache-busting.

Imehakikiwa 2026-09-27
MDN Web DocsCache-Control header ↗

Rejea kwa max-age, s-maxage, no-cache, no-store, private, public, na must-revalidate.

Imehakikiwa 2026-09-27
MDN Web DocsETag header ↗

Inaelezea entity tags, If-None-Match, na uthibitisho wa 304.

Imehakikiwa 2026-09-27
web.devPrevent unnecessary network requests with the HTTP Cache ↗

Mwongozo wa vitendo juu ya URL zilizo versioned, validators, sera, na utaratibu wa deployment.

Imehakikiwa 2026-09-27

Sera ya vyanzo. Makala hii inatumia viwango vya kusoma na nyaraka za kiteknolojia za upande wa kwanza. Inaziacha madai yasiyoungwa mkono kuhusu utendaji na inatenga sheria za HTTP na usanidi maalum wa jukwaa.

MAELEZO YA HARAKA

Maswali ya kawaida.

Je, no-cache inamaanisha kivinjari hakiwezi kuhifadhi ukurasa?

Hapana. no-cache inaruhusu uhifadhi lakini inahitaji uthibitisho wa mafanikio kutoka kwa origin kabla ya matumizi. Tumia no-store tu wakati jibu halipaswi kuhifadhiwa, huku ukitambua kwamba no-store pekee sio kinga kamili ya faragha.

Je, kila faili ya static inapaswa kupata maisha ya cache ya mwaka mmoja?

Hapana. max-age ya mwaka mmoja inafaa tu wakati URL haitabadilika ndani ya kipindi hicho, kawaida kwa sababu URL imepewa fingerprint au version. Faili zinazobadilika zenye URL ileile zinahitaji sera fupi zaidi au ya kwanza kuthibitisha.

Je, purge ya CDN inaweza kurekebisha kosa la caching la kivinjari?

Inaweza kuondoa nakala ya shared-cache iliyodhibitiwa, lakini haiwezi kulazimisha kila kivinjari kutupa jibu ambalo bado ni fresh. Chapisha URL mpya ya asset iliyotokana na version na sasisha rejeleo za HTML; kisha tumia mpango wa rollback kurejesha kizazi kinachofaa ikiwa inahitajika.

Status Is UP Editorial Team · Wahariri wa Uwezeshaji wa Uptime

Imehakikiwa na Mkaguzi wa utendaji wa wavuti na uhandisi wa utoaji. Ilichapishwa 2026-09-27; imesasishwa 2026-09-30.