STATUS IS UPWIKI NG PAG-OPTIMIZE NG WEBSITE
20Pabilisin
Pagganap at paghahatid / Pabilisin

Gabay sa Browser Caching para sa Mga May-ari ng Website

Itakda ang malinaw na HTTP cache na mga patakaran upang ang mga paulit-ulit na pagbisita ay makaiwas sa hindi kailangang pag-download nang hindi naman nakakulong ang mga bisita sa lumang mga pahina o sa hindi ligtas na personalized na nilalaman.

Gabay sa Browser Caching para sa Mga May-ari ng Website — BISWAL NA GABAY
BASAHIN
7 minuto
PINAGMULAN
6
MULING SURIIN
2027-03-27
sinuri
Tagasuri sa pagganap ng web at release engineering
MAIKLING SAGOT

Magsimula sa desisyon.

Gumamit ng magkakaibang patakaran sa caching para sa bawat uri ng URL. Bigyan ng mahabang freshness lifetime ang mga file na hindi nagbabago ang nilalaman sa parehong URL—hal., mga JavaScript, CSS, font, at imahe na may fingerprint/hash sa pangalan. Bigyan ang HTML at iba pang hindi-versioned na tugon ng patakarang pinipilit ang browser na mag-validate bago muling gamitin kapag mahalaga ang pagiging sariwa. I-publish ang bagong asset URL tuwing nagbabago ang asset; ang mahabang cache lifetime ay hindi maaasahang mababawi para sa mga kopyang nasa loob pa rin ng kanilang freshness period.

Magsimula sa mga tahasang Cache-Control header, pagkatapos i-verify ang mga header at gawi ng browser sa isang staging na kapaligiran. Sabayan ang mga tugon na madaling i-validate ng ETag at, kung magagamit, Last-Modified. Tratuhin nang hiwalay ang personalized, account, checkout, at sensitibong tugon mula sa mga pampublikong pahina. Ginagamit ng SIU ang gawaing ito bilang proaktibong uptime optimization: binabawasan nito ang di-kinakailangang trabaho sa origin at pinipigilan ang mga cache-related na defect sa release bago pa man makaapekto sa isang gumaganang website.

BISWAL NA GABAY

Tingnan ang gawain bilang isang sistema.

Gamitin ang mapang ito para iugnay ang mga desisyon sa artikulo bago kumilos sa mga indibidwal na taktika.

SIUPabilisin
01Ima-map ang patakaran sa resource, hindi sa server
02Gamitin nang tumpak ang mga termino ng Cache-Control
03I-version ang immutable na mga asset bago magtakda ng mahabang lifetime
04Gawing kasalukuyan ang HTML sa pamamagitan ng validation, hindi ng mahabang caching
01

Ima-map ang patakaran sa resource, hindi sa server

Gumawa ng imbentaryo ng mga kinakatawang URL bago baguhin ang mga header: home page, content page, application shell, CSS, JavaScript, mga imahe, font, API, login, account, checkout, at downloads. Para sa bawat isa, itala kung ang tugon ay pampubliko o personalized, kung nagbabago ba ang URL kapag nagbago ang bytes, at kung gaano kabilis dapat makarating ang isang pagwawasto sa mga bisita.

Gumawa ng policy matrix mula sa imbentaryong iyon. Ang isang public content-addressed asset ay nangangailangan ng ibang patakaran kaysa sa HTML na nasa isang stable na address. Ang mga tugon na walang Cache-Control ay maaari pa ring ma-cache nang heuristically, kaya mas madaling subukan ang mga tahasang patakaran.

Freshness lifetime

Ang panahon na maaaring muling gamitin ang isang naka-imbak na tugon; ibinibigay ito ng max-age sa mga segundo.

02

Gamitin nang tumpak ang mga termino ng Cache-Control

Sinusabi ng Cache-Control sa mga browser at shared cache kung paano i-store at muling gamitin ang isang tugon. Ang max-age=N ay nagpapahintulot ng muling paggamit habang fresh. Ang s-maxage=N ay nagtatakda ng shared-cache freshness at nag-ooverride ng max-age doon; hindi ito binabasa ng mga browser. Ang public ay nagpapahintulot sa anumang cache; ang private ay nagpapahintulot ng browser caching ngunit pumipigil sa shared-cache storage.

Ang no-cache ay nagpapahintulot ng storage ngunit nangangailangan ng validation sa origin bago muling gamitin. Ang no-store naman ay nangangahulugang hindi dapat i-store ng mga cache ang tugon, ngunit hindi ito kumpletong kontrol sa privacy. Gamitin ang must-revalidate kapag hindi katanggap-tanggap ang pagsisilbi ng stale content pagkatapos mag-expire; sa ganoong paraan, ang unavailable na origin ay maaari nang magbalik ng 504 sa halip na stale fallback.

Iwasan ang blanket no-store

Tinatanggal nito ang storage sa halip na simpleng mangailangan ng tsek; ireserba ito para sa mga tugong talagang hindi dapat i-store.

03

I-version ang immutable na mga asset bago magtakda ng mahabang lifetime

Ang isang versioned asset URL ay naglalaman ng content fingerprint o release version, halimbawa app.4f2c.js. Kapag nagbago ang bytes ng asset, i-publish ang ibang URL at i-update ang reference sa HTML. Nakikita ng cache ang bagong resource, kaya kukunin ng bisita ang bagong asset nang hindi kailangang maabot ang invalidation sa bawat browser.

Para sa isang representasyon na hindi magbabago sa loob ng kanyang freshness lifetime, praktikal ang pattern na Cache-Control: max-age=31536000, immutable. Sinasabi ng immutable sa mga sumusuportang client na huwag mag-conditionally revalidate habang fresh. Huwag itong gamitin o magtakda ng isang taong max-age sa isang maramihang nagbabagong same-URL na file. Panatilihin ang mga naunang fingerprinted assets habang ang cached HTML ay maaaring tumutukoy pa rin sa mga ito.

HTML ang manifest

Pinipili ng HTML ang mga asset URL, kaya kailangang panatilihin ng release sequencing ang referenced generation.

04

Gawing kasalukuyan ang HTML sa pamamagitan ng validation, hindi ng mahabang caching

Ang HTML karaniwang may stable, human-facing URL at nagbabago kasama ng content, asset references, feature flags, o security notice. Ang konserbatibong pampublikong pattern para sa HTML ay Cache-Control: no-cache kasama ng ETag at Last-Modified kapag kayang i-produce nang tama ng platform ang mga ito. I-iimbak ng browser ang body ngunit gagamit ng conditional request bago muling gamitin; ang hindi nagbago ay maaaring magbalik ng 304 Not Modified nang walang body.

Ang ETag ay nag-iidentipika ng version ng resource. Sa isang stale na tugon, maaaring ipadala ito ng browser sa If-None-Match; kung tumugma, sasagot ang server ng 304, kung hindi ay ipapadala nito ang bagong representasyon. Mas pinapayo ng RFC ang pagkakaroon ng parehong ETag at Last-Modified sa isang 200 response kapag posible. Hindi pinapangako ng no-cache na magkakaroon ng validation sa Back o Forward navigation dahil maaaring i-restore ng browser ang session-history snapshot.

Kalidad ng validator

Dapat magbago ang ETag kapag nagbago ang representasyon; subukin ito sa iba't ibang origin at deployment.

05

Paghiwalayin ang pampublikong paghahatid mula sa personalized at sensitibong tugon

Maaaring i-reuse ng shared cache, halimbawa isang CDN, ang isang tugon para sa maraming gumagamit. Huwag hayaang ma-reuse nito ang account-specific na HTML o API data across users. Para sa personalized na content na maaaring manatili sa browser, ang private, no-cache ay sensible na panimulang patakaran: pinipigilan nito ang shared storage at nangangailangan ng validation. Ang isang Set-Cookie header lamang ay hindi pumipigil sa caching.

Para sa mga tugong hindi dapat i-store, gumamit ng no-store at repasuhin ang application code, CDN rules, service workers, browser storage, logs, at error pages. Hindi sapat ang mga header lamang para sa privacy, compliance, o payment-security program. Magkaroon ng kwalipikadong security, privacy, at payment reviewers na susuriin ang mga sensitibong flow at ang mga naaangkop na requirement.

Pagbabago ng authorization

Isubok ang sign-in, sign-out, pag-switch ng account, at pagbabago ng permiso sa may init na browser at CDN caches.

06

I-roll out ang mga pagbabago sa cache bilang reversible na release

Kunin ang baseline headers at body behavior para sa uncached at repeat requests. Sa staging, i-deploy muna ang versioned assets, pagkatapos ang HTML na nagtutukoy sa mga ito, at subukan ang mas lumang cached HTML laban sa bagong origin. Suriin ang direct-origin at CDN paths kung pareho silang umiiral. Dapat ipakita ng DevTools Network headers ang nilalayong patakaran at gawi sa repeat requests.

Panatilihin ang release manifest ng asset URL, header rules, at configuration version. Kung ang release ay naghalo ng hindi magkakatugmang client files, ibalik ang compatible na HTML at application behavior, ngunit huwag i-overwrite ang nai-publish na fingerprinted file. I-repoint ang HTML sa known-good generation at panatilihin ang parehong generation habang maaaring i-request pa rin ang mga ito ng cached HTML. Hindi kayang pilitin ng shared-cache purge ang mga browser na i-discard ang fresh na tugon.

Proactive remediation

Gawing bahagi ng susunod na release checklist ang header-test failures, asset 404s, at version mismatches.

AKSYON / SURIIN

Ang praktikal mong gabay sa mga dapat gawin.

  1. 01

    I-inventory ang mga klase ng tugon

    I-klasipika ang sample URLs bilang pampubliko o personalized, mutable o versioned.

    SURIIN: Kasama ang HTML, assets, APIs, authentication, account, checkout, at error pages.
  2. 02

    Kunan ang kasalukuyang headers

    Itala ang Cache-Control, ETag, Last-Modified, Age, Vary, at status sa origin at CDN.

    SURIIN: May pre-change snapshot para sa bawat sample.
  3. 03

    I-fingerprint ang mga mutable asset

    Pagawaing mag-publish ng bagong asset URL ang build kapag nagbago ang bytes nito.

    SURIIN: Ang nabagong asset ay may nabagong URL at HTML reference.
  4. 04

    Magtakda ng tahasang mga patakaran

    Gamitin ang long-lived rules lamang para sa immutable versioned URLs; gamitin ang validation-first rules para sa stable URLs.

    SURIIN: Tumutugma ang header tests sa nilalayong patakaran.
  5. 05

    Subukan ang validation

    Suriin na ang hindi nagbago na dokumento ay nagbabalik ng 304 matapos ang conditional request at ang nagbago ay nagbabalik ng 200 na may bagong ETag.

    SURIIN: Ipinapakita ng staging traces ang parehong landas.
  6. 06

    Subukan ang mga hangganan ng privacy

    Subukan ang dalawang account, sign-out, pagbabago ng role, at sensitibong ruta sa may init na caches.

    SURIIN: Walang personalized na tugon ang tumatawid sa mga gumagamit.
  7. 07

    Patunayan ang compatibility ng release

    I-load ang cached na naunang HTML pagkatapos ng susunod na release.

    SURIIN: Nauna at kasalukuyang HTML ay naglo-load ng kanilang referenced assets nang walang 404s o script errors.
  8. 08

    Idokumento ang rollback

    Itala ang magandang generation, header version, owner, at kung gaano katagal panatilihin ang lumang assets.

    SURIIN: Isang non-production drill ang nakakapag-restore ng known-good generation nang hindi ine-edit ang immutable URL.
MGA PAKSA NG TALAKAYAN

Ihambing ang mga trade-off, hindi ang pribadong data.

Gamitin ang mga prompt na ito kasama ang iyong koponan o komunidad ng may-ari ng website. Magbahagi ng mga pamamaraan at aral, ngunit huwag kailanman ipaste ang mga kredensyal, rekord ng customer, o hindi-pampublikong detalye ng imprastruktura.

  1. 01

    Aling mga klase ng URL sa iyong site ang pinakamahirap i-klasipika bilang pampubliko, personalized, immutable, o madalas magbago, at paano ninyo idodokumento ang desisyon?

  2. 02

    Anong release sequencing test ang pinaka-nakatulong para mahuli ang mismatch ng lumang HTML at bagong asset bago ito maranasan ng bisita?

  3. 03

    Saan nag-o-overlap ang mga patakaran ng inyong CDN, application, at browser cache, at sino ang may pananagutan sa pag-verify na tumutugma ang pinagsamang gawi nila sa nilalayong patakaran?

Sikat / Awtoritatibong mapagkukunan

Buksan ang pinagmulang materyal.

IETFRFC 9111: HTTP Caching ↗

Nagpapaliwanag tungkol sa freshness, validation, cache directives, invalidation, at mga limitasyon sa sensitibong impormasyon.

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

Nagtatakda ng kahulugan para sa immutable caching, saklaw nito, at mga konsiderasyon sa corruption.

Sinuri 2026-09-27
MDN Web DocsHTTP caching ↗

Praktikal na patnubay sa mga validator, 304 responses, personalization, at cache-busting.

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

Reference para sa max-age, s-maxage, no-cache, no-store, private, public, at must-revalidate.

Sinuri 2026-09-27
MDN Web DocsETag header ↗

Naglalahad ng paliwanag tungkol sa entity tags, If-None-Match, at 304 validation.

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

Praktikal na gabay sa versioned URLs, validators, patakaran, at deployment.

Sinuri 2026-09-27

Patakaran sa pinagkukunan. Ang artikulong ito ay gumagamit ng mga nabasang standard at first-party na teknikal na dokumentasyon. Iniiwasan nito ang mga hindi suportadong performance claim at hinihiwalay ang mga HTTP rule mula sa platform-specific na configuration.

Mabilis na paglilinaw

Karaniwang mga tanong.

Ibig bang sabihin ng no-cache na hindi mai-iimbak ng browser ang pahina?

Hindi. Pinapayagan ng no-cache ang storage ngunit nangangailangan ng matagumpay na validation sa origin bago muling gamitin. Gamitin ang no-store lamang kapag hindi dapat i-store ang tugon, at tandaan na hindi sapat ang no-store bilang kumpletong privacy safeguard.

Dapat bang bigyan ng isang taong cache lifetime ang bawat static file?

Hindi. Ang isang taong max-age ay angkop lamang kapag hindi magbabago ang bytes ng URL sa loob ng panahong iyon—karaniwan dahil fingerprinted o versioned ang URL. Ang mga mutable na same-URL file ay nangangailangan ng mas maikling lifetime o validation-first na patakaran.

Maaari bang maitama ng CDN purge ang maling pag-cache ng browser?

Maaari nitong alisin ang kinokontrol na shared-cache copy, ngunit hindi nito mapipilit ang bawat browser na i-discard ang fresh na tugon. I-publish ang bagong versioned asset URL at i-update ang HTML references; kung kailangan, gamitin ang rollback plan para ibalik ang compatible na generation.

Status Is UP Editorial Team · Mga Editor ng Uptime Enablement

Sinuri ni Tagasuri sa pagganap ng web at release engineering. Inilathala 2026-09-27; na-update 2026-09-30.