STATUS IS UPWIKI OPTYMALIZACJI WITRYN
20Przyspieszaj
Wydajność i dostarczanie / Przyspieszaj

Poradnik buforowania przeglądarki dla właścicieli witryn

Ustal jasne reguły HTTP cache, aby powtórne wizyty unikały niepotrzebnych pobrań, nie więżąc jednocześnie odwiedzających na starych stronach ani na niebezpiecznych, spersonalizowanych treściach.

Poradnik buforowania przeglądarki dla właścicieli witryn — PRZEWODNIK WIZUALNY
CZYTAJ
7 min
ŹRÓDŁA
6
ZWERYFIKUJ PONOWNIE
2027-03-27
przejrzano
Recenzent ds. wydajności sieci i inżynierii wydań
KRÓTKA ODPOWIEDŹ

Zacznij od decyzji.

Użyj innej reguły cache dla każdego typu adresu URL. Plikom, których zawartość przy danym URL nigdy się nie zmienia, takim jak pliki JavaScript, CSS, fonty i obrazy nazwane z fingerprintem, nadaj długi okres świeżości. HTML i inne odpowiedzi bez wersjonowania traktuj polityką wymagającą walidacji przed ponownym użyciem, gdy świeżość ma znaczenie. Opublikuj nowy URL zasobu za każdym razem, gdy zasób się zmieni; długi czas życia cache nie da się niezawodnie cofnąć dla kopii, które nadal są świeże.

Zacznij od jawnych nagłówków Cache-Control, a następnie zweryfikuj nagłówki i zachowanie przeglądarki w środowisku stagingowym. Łącz odpowiedzi przyjazne walidacji z ETag i, jeśli dostępne, Last-Modified. Traktuj odpowiedzi spersonalizowane, dotyczące kont, koszyka i wrażliwe osobno od stron publicznych. SIU używa tej pracy jako proaktywnej optymalizacji dostępności: zmniejsza zbędne obciążenie origin i zapobiega defektom związanym z cache w wydaniach, zanim zakłócą użyteczność strony.

PRZEWODNIK WIZUALNY

Zobacz pracę jako system.

Użyj tej mapy, aby połączyć decyzje z artykułu, zanim przejdziesz do poszczególnych taktyk.

SIUPrzyspieszaj
01Mapuj politykę do zasobu, nie do serwera
02Używaj precyzyjnie terminów Cache-Control
03Wersjonuj niemutowalne zasoby przed nadaniem długiego czasu życia
04Utrzymuj aktualność HTML przez walidację, nie długie buforowanie
01

Mapuj politykę do zasobu, nie do serwera

Zrób inwentaryzację reprezentatywnych URL przed zmianą nagłówków: strona główna, strona treści, szkielet aplikacji, CSS, JavaScript, obrazy, fonty, API, logowanie, konto, koszyk i pliki do pobrania. Dla każdego zanotuj, czy odpowiedź jest publiczna czy spersonalizowana, czy URL zmienia się przy zmianie bajtów oraz jak szybko poprawka musi dotrzeć do odwiedzających.

Utwórz macierz polityk na podstawie tej inwentaryzacji. Publiczny zasób adresowany treścią potrzebuje innej reguły niż HTML pod stabilnym adresem. Odpowiedzi bez Cache-Control mogą być nadal buforowane heurystycznie, więc jawne reguły są łatwiejsze do przetestowania.

Okres świeżości

Okres, przez który przechowywana odpowiedź może być ponownie użyta; max-age podaje go w sekundach.

02

Używaj precyzyjnie terminów Cache-Control

Cache-Control mówi przeglądarkom i wspólnym cache'om, jak przechowywać i ponownie używać odpowiedź. max-age=N pozwala na ponowne użycie, dopóki odpowiedź jest świeża. s-maxage=N ustawia świeżość dla cache'ów współdzielonych i nadpisuje max-age tam, ale przeglądarki ignorują s-maxage. public pozwala dowolnemu cache'owi; private pozwala na buforowanie w przeglądarce, lecz blokuje przechowywanie w cache'ach współdzielonych.

no-cache pozwala na przechowywanie, lecz wymaga walidacji u origin przed ponownym użyciem. no-store oznacza, że cache'e nie mogą przechowywać odpowiedzi, ale nie jest to kompletna kontrola prywatności. Używaj must-revalidate, gdy serwowanie przeterminowanej zawartości po wygaśnięciu jest nieakceptowalne; niedostępny origin może wtedy zwrócić 504 zamiast przestarzałego podglądu.

Unikaj ogólnego no-store

Usuwa przechowywanie zamiast jedynie wymagać sprawdzenia; zarezerwuj je dla odpowiedzi, które naprawdę nie mogą być przechowywane.

03

Wersjonuj niemutowalne zasoby przed nadaniem długiego czasu życia

Adres URL wersjonowanego zasobu zawiera fingerprint treści lub numer wersji wydania, np. app.4f2c.js. Gdy bajty zasobu się zmienią, opublikuj inny URL i zaktualizuj referencję w HTML. Cache widzi nowy zasób, więc odwiedzający pobiorą nowy plik bez konieczności wymuszania unieważnienia w każdej przeglądarce.

Dla reprezentacji, która nie zmieni się w czasie swojej świeżości, Cache-Control: max-age=31536000, immutable to praktyczny wzorzec. immutable informuje obsługujące klienty, aby nie wykonywały warunkowej walidacji, dopóki zasób jest świeży. Nie stosuj go ani rocznego max-age do pliku o tej samej nazwie, który jest mutowalny. Zachowaj poprzednie zasoby z fingerprintem tak długo, jak długo może istnieć cache'owany HTML, który je referencuje.

HTML jest manifesto

HTML wybiera URL zasobów, więc sekwencjonowanie wydań musi zachować referencjonowaną generację.

04

Utrzymuj aktualność HTML przez walidację, nie długie buforowanie

HTML zwykle ma stabilny, czytelny dla ludzi URL i zmienia się wraz z treścią, referencjami do zasobów, flagami funkcji lub komunikatami bezpieczeństwa. Konserwatywny publiczny wzorzec dla HTML to Cache-Control: no-cache z ETag i Last-Modified, gdy platforma potrafi je poprawnie wygenerować. Przeglądarka przechowuje ciało, ale używa warunkowego żądania przed ponownym użyciem; niezmieniona odpowiedź może zwrócić 304 Not Modified bez ciała.

ETag identyfikuje wersję zasobu. Przy przeterminowanej odpowiedzi przeglądarka może wysłać go w If-None-Match; jeśli pasuje, serwer odpowiada 304, w przeciwnym razie wysyła nową reprezentację. Wytyczne RFC preferują stosowanie zarówno ETag, jak i Last-Modified w odpowiedzi 200, gdy to możliwe. no-cache nie gwarantuje walidacji przy nawigacji Back lub Forward, ponieważ przeglądarka może przywrócić snapshot historii sesji.

Jakość walidatora

ETag musi zmieniać się, gdy reprezentacja się zmienia; przetestuj go między originami i wdrożeniami.

05

Oddziel dostarczanie publiczne od odpowiedzi spersonalizowanych i wrażliwych

Wspólny cache, taki jak CDN, może ponownie użyć jednej odpowiedzi dla wielu użytkowników. Nie pozwól mu na ponowne wykorzystanie HTML specyficznego dla konta lub danych API między różnymi użytkownikami. Dla treści spersonalizowanej, która może żyć w przeglądarce, sensiblem punktem startowym jest private, no-cache: zapobiega to przechowywaniu w cache'ach współdzielonych i wymaga walidacji. Sam nagłówek Set-Cookie nie zatrzymuje cache'owania.

Dla odpowiedzi, które nie powinny być przechowywane, użyj no-store i przejrzyj kod aplikacji, zasady CDN, service workery, pamięć przeglądarki, logi i strony błędów. Same nagłówki nie tworzą programu prywatności, zgodności ani bezpieczeństwa płatności. Zaangażuj kwalifikowanych recenzentów ds. bezpieczeństwa, prywatności i płatności, aby ocenili wrażliwe ścieżki i obowiązujące wymagania.

Zmiany autoryzacji

Przetestuj logowanie, wylogowanie, przełączanie kont i zmiany uprawnień przy ciepłych cache'ach przeglądarki i CDN.

06

Wdrażaj zmiany cache jako odwracalne wydanie

Zrób zrzut bazowych nagłówków i zachowania ciała dla żądań niebuforowanych i powtarzalnych. W stagingu wdrażaj najpierw wersjonowane zasoby, potem HTML, który je referuje, i testuj starszy zcache'owany HTML względem nowego origin. Sprawdź ścieżki bezpośrednie do origin i przez CDN, jeśli oba istnieją. Nagłówki w DevTools powinny pokazywać zamierzoną politykę i zachowanie przy powtórzeniach.

Prowadź manifest wydania z URL zasobów, regułami nagłówków i wersją konfiguracji. Jeśli wydanie łączy niekompatybilne pliki klienckie, przywróć kompatybilny HTML i zachowanie aplikacji, ale nie nadpisuj opublikowanego pliku z fingerprintem. Wskaż HTML na znaną-dobrą generację i zachowaj obie generacje dopóki cache'owany HTML może ich żądać. Czyszczenie cache współdzielonego nie zmusi przeglądarek do wyrzucenia świeżej odpowiedzi.

Proaktywne naprawy

Zamieniaj błędy testów nagłówków, 404 zasobów i niezgodności wersji w zmiany do checklisty następnego wydania.

DZIAŁANIE / WERYFIKACJA

Twój praktyczny przewodnik z zadaniami.

  1. 01

    Zainwentaryzuj klasy odpowiedzi

    Sklasyfikuj przykładowe URL jako publiczne lub spersonalizowane, mutowalne lub wersjonowane.

    SPRAWDŹ: Zawiera HTML, zasoby, API, uwierzytelnianie, konto, koszyk i błędy.
  2. 02

    Zarejestruj bieżące nagłówki

    Zapisz Cache-Control, ETag, Last-Modified, Age, Vary i status na origin i CDN.

    SPRAWDŹ: Istnieje migawka przed zmianą dla każdego przykładu.
  3. 03

    Fingerprintuj mutowalne zasoby

    Spraw, aby proces budowania publikował nowy URL zasobu, gdy jego bajty się zmienią.

    SPRAWDŹ: Zmieniony zasób generuje zmieniony URL i referencję w HTML.
  4. 04

    Ustaw jawne polityki

    Używaj długożyjących reguł tylko dla niemutowalnych, wersjonowanych URL; używaj polityk preferujących walidację dla stabilnych URL.

    SPRAWDŹ: Testy nagłówków odpowiadają zamierzonej polityce.
  5. 05

    Przetestuj walidację

    Sprawdź, czy niezmieniony dokument zwraca 304 po warunkowym żądaniu, a zmieniony zwraca 200 z nowym ETag.

    SPRAWDŹ: Ślady w stagingu pokazują oba przebiegi.
  6. 06

    Przeegzaminuj granice prywatności

    Testuj dwa konta, wylogowanie, zmiany ról i trasy wrażliwe przy ciepłych cache'ach.

    SPRAWDŹ: Żadna spersonalizowana odpowiedź nie przekracza użytkowników.
  7. 07

    Udowodnij kompatybilność wydania

    Załaduj zcache'owany poprzedni HTML po kolejnym wydaniu.

    SPRAWDŹ: Poprzedni i bieżący HTML ładują referencjonowane zasoby bez 404 lub błędów skryptów.
  8. 08

    Udokumentuj rollback

    Zanotuj dobrą generację, wersję nagłówków, właściciela i okres przechowania starych zasobów.

    SPRAWDŹ: Ćwiczenie poza produkcją przywraca znaną-dobrą generację bez edycji niemutowalnego URL.
TEMATY DO DYSKUSJI

Porównuj kompromisy, nie dane prywatne.

Użyj tych pytań z zespołem lub społecznością właścicieli witryn. Dziel się metodami i lekcjami, ale nigdy nie wklejaj poświadczeń, danych klientów ani niepublicznych informacji infrastruktury.

  1. 01

    Które klasy URL na Twojej stronie najtrudniej sklasyfikować jako publiczne, spersonalizowane, niemutowalne lub często zmieniające się i jak dokumentujecie tę decyzję?

  2. 02

    Który test sekwencjonowania wydań był najbardziej użyteczny w wykrywaniu niezgodności między starym HTML a nowym zasobem zanim odwiedzający go doświadczył?

  3. 03

    Gdzie nakładają się reguły CDN, aplikacji i cache przeglądarki i kto odpowiada za weryfikację, że ich łączne zachowanie odpowiada zamierzonej polityce?

POPULARNE / AUTORYTATYWNE ZASOBY

Otwórz materiały źródłowe.

IETFRFC 9111: HTTP Caching ↗

Wyjaśnia świeżość, walidację, dyrektywy cache, unieważnianie i ograniczenia informacji wrażliwych.

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

Definiuje cache'owanie immutable, jego zakres i ryzyka korupcji.

Przejrzano 2026-09-27
MDN Web DocsHTTP caching ↗

Praktyczne wskazówki dotyczące walidatorów, 304, personalizacji i rozbijania cache (cache-busting).

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

Odwołanie do max-age, s-maxage, no-cache, no-store, private, public i must-revalidate.

Przejrzano 2026-09-27
MDN Web DocsETag header ↗

Wyjaśnia entity tags, If-None-Match i walidację 304.

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

Praktyczne wskazówki dotyczące wersjonowanych URL, walidatorów, polityk i wdrożeń.

Przejrzano 2026-09-27

Polityka źródeł. Ten artykuł opiera się na czytelnych standardach i dokumentacji pierwszorzędnej. Unika niepotwierdzonych twierdzeń wydajnościowych i oddziela reguły HTTP od konfiguracji specyficznej dla platformy.

SZYBKIE WYJAŚNIENIA

Często zadawane pytania.

Czy no-cache oznacza, że przeglądarka nie może zapisać strony?

Nie. no-cache pozwala na przechowywanie, ale wymaga poprawnej walidacji u origin przed ponownym użyciem. Użyj no-store tylko wtedy, gdy odpowiedź nie powinna być przechowywana, pamiętając, że no-store sam w sobie nie jest pełnym zabezpieczeniem prywatności.

Czy każdy plik statyczny powinien mieć roczny czas życia w cache?

Nie. Roczny max-age jest odpowiedni tylko wtedy, gdy bajty pod danym URL nie zmienią się w tym okresie, zwykle dlatego, że URL jest fingerprintowany lub wersjonowany. Mutowalne pliki o tym samym URL wymagają krótszej polityki lub podejścia preferującego walidację.

Czy purge CDN naprawi błąd cache w przeglądarce?

Może usunąć kopię z zarządzanego cache współdzielonego, ale nie zmusi każdej przeglądarki do odrzucenia świeżej odpowiedzi. Opublikuj nowy, wersjonowany URL zasobu i zaktualizuj referencje w HTML; jeśli trzeba, użyj planu rollback, aby przywrócić kompatybilną generację.

Status Is UP Editorial Team · Redaktorzy ds. dostępności (Uptime Enablement Editors)

Sprawdził(a): Recenzent ds. wydajności sieci i inżynierii wydań. Opublikowano: 2026-09-27; zaktualizowano: 2026-09-30.