Co to jest cache?

Autor: Opublikowano

W skrócie: Cache, czyli pamięć podręczna, przechowuje dane, które mogą być ponownie potrzebne, aby szybciej je udostępnić. Dzięki niej przeglądarka nie musi za każdym razem pobierać tych samych plików, a serwer ponownie wykonywać części obliczeń. Czasem jednak zapisane dane są nieaktualne — wtedy pomaga ich odświeżenie lub wyczyszczenie odpowiedniego cache.

Jak działa pamięć podręczna?

Gdy aplikacja potrzebuje określonych danych, może najpierw sprawdzić, czy ma je w pamięci podręcznej. Jeśli znajduje tam kopię, którą według przyjętych reguł może wykorzystać, odczytuje ją zamiast sięgać do źródła. To nazywa się trafieniem w cache. Jeśli kopii nie ma lub nie nadaje się do użycia, aplikacja pobiera albo oblicza dane ponownie.

Wyobraź sobie sklep internetowy, w którym przeglądasz kilka produktów. Logo sklepu, część ikon i plik określający wygląd strony są wspólne dla kolejnych podstron. Przeglądarka może zachować je po pierwszym pobraniu, zamiast ściągać ponownie przy każdym kliknięciu.

Cache nie musi znajdować się w pamięci RAM. Zależnie od zastosowania dane podręczne są zapisywane także na dysku albo na osobnym serwerze. Wspólny jest cel: ograniczyć czas dostępu do danych oraz pracę potrzebną do ich uzyskania.

Gdzie spotykasz cache na co dzień?

Pamięć podręczna działa na różnych poziomach. Rozróżnienie ich pomaga ustalić, dlaczego strona lub aplikacja nadal pokazuje starą wersję danych.

Rodzaj cacheCo może przechowywaćDo czego służy
PrzeglądarkiObrazy, pliki stylów i skryptyOgranicza ponowne pobieranie zasobów strony
AplikacjiMiniatury, pobrane materiały, wyniki zapytańPrzyspiesza wyświetlanie treści i powtarzalne operacje
SerweraGotowe strony lub wyniki obliczeńZmniejsza obciążenie systemu obsługującego witrynę
CDNKopie plików lub odpowiedzi stronyDostarcza treści z rozproszonej sieci serwerów
DNSOdpowiedzi zawierające m.in. adres IP domenyOgranicza ponawianie zapytań o adres serwera

CDN to sieć serwerów pośredniczących w dostarczaniu treści użytkownikom. DNS jest natomiast systemem, który pozwala ustalić między innymi adres IP odpowiadający nazwie domeny. Cache DNS nie przechowuje wyglądu strony — zapamiętuje odpowiedzi dotyczące jej adresowania.

Procesory również mają własną pamięć podręczną, zapewniającą szybki dostęp do często używanych danych i instrukcji. Nie jest to jednak cache, który czyścisz w ustawieniach przeglądarki.

Dlaczego cache czasem pokazuje stare dane?

Kopia w pamięci podręcznej nie zawsze zmienia się jednocześnie ze źródłem. Jeżeli właściciel witryny podmieni grafikę, przeglądarka może jeszcze korzystać z wcześniej pobranego pliku. Podobnie serwer może zwracać zapisaną wersję strony zamiast generować ją na nowo.

Jednym ze sposobów kontrolowania aktualności jest TTL, czyli czas ważności wpisu w cache. Po jego upływie system może pobrać nowe dane lub sprawdzić, czy dotychczasowa kopia nadal jest aktualna. Samo wygaśnięcie ważności nie musi oznaczać natychmiastowego usunięcia pliku z dysku.

Drugim mechanizmem jest unieważnianie cache: oznaczenie zapisanej kopii jako nieaktualnej albo jej usunięcie po zmianie danych. Przy publikowaniu nowych plików strony stosuje się też wersjonowanie adresów, na przykład zmianę style.v1.css na style.v2.css. Nowy adres pozwala odróżnić nowy zasób od wcześniej zapisanej kopii.

Dane takie jak zawartość prywatnego konta czy koszyka wymagają szczególnej ostrożności. Cache współdzielony między użytkownikami nie powinien udostępniać jednej osobie treści przeznaczonych dla innej. To kwestia konfiguracji witryny, której nie rozwiązuje czyszczenie przeglądarki przez odwiedzającego.

Kiedy i jak wyczyścić cache?

Czyszczenie pamięci podręcznej ma sens, gdy strona wygląda nieprawidłowo, nie pokazuje opublikowanych zmian albo aplikacja korzysta z uszkodzonych plików tymczasowych. Nie jest potrzebne jako codzienny zabieg przyspieszający urządzenie. Po usunięciu kopii pierwsze otwarcie strony może potrwać dłużej i wymagać ponownego pobrania zasobów.

Jeśli podejrzewasz problem z cache strony, wykonaj kolejne kroki:

  1. Odśwież stronę. Jeśli to nie pomaga, użyj dostępnej w przeglądarce funkcji odświeżenia z pominięciem pamięci podręcznej. Zwykłe odświeżenie nie zawsze wymusza ponowne pobranie wszystkich plików.
  2. Sprawdź stronę w innej przeglądarce. Różnica może wskazywać na problem lokalny, choć przyczyną mogą być również rozszerzenia lub ustawienia.
  3. Wyczyść buforowane obrazy i pliki. Sprawdź zakres czasu oraz zaznaczone opcje. Nazwy pozycji zależą od przeglądarki; usuwanie wszystkich danych witryn może objąć także logowanie i ustawienia.
  4. Jeśli zarządzasz witryną, sprawdź cache serwera i CDN. Usunięcie lokalnych plików nie usuwa kopii przechowywanych przez te systemy.

Po zmianie adresu IP domeny znaczenie może mieć cache DNS. Jego wyczyszczenie na komputerze nie usuwa wpisów z pamięci serwerów DNS używanych przez operatora, dlatego nie gwarantuje natychmiastowego zobaczenia zmiany.

Cache, cookies i dane aplikacji to nie to samo

Cookies to małe porcje danych, które witryna może zapisać w przeglądarce, na przykład po to, by rozpoznawać sesję użytkownika. Cache służy przede wszystkim do ponownego wykorzystania zasobów. Wyczyszczenie samych buforowanych plików zwykle nie wylogowuje z serwisów, ale usunięcie cookies może to zrobić.

W ustawieniach aplikacji opcja „wyczyść dane” jest zazwyczaj szersza niż „wyczyść pamięć podręczną”. Może usunąć ustawienia, logowanie lub lokalnie zapisane materiały. Przed jej użyciem przeczytaj komunikat systemu i upewnij się, że ważne pliki są zapisane lub zsynchronizowane.

Gdy problem dotyczy jednej strony, zacznij od odświeżenia i usunięcia tylko jej buforowanych zasobów, jeśli przeglądarka udostępnia taką możliwość. Nie kasuj wszystkich danych przeglądania, zanim sprawdzisz mniej inwazyjne rozwiązanie.

Zobacz też: Co to jest CDN?

Przeczytaj także

Dowiedz się, jak PHP-FPM obsługuje żądania PHP, czym różni się od serwera WWW i jak dobrać ustawienia procesów do ruchu oraz zasobów hostingu.
Poznaj BIND, otwarte oprogramowanie serwera DNS: sprawdź, jak obsługuje domeny, czym różnią się jego role i kiedy warto samodzielnie go wdrożyć.
Poznaj najważniejsze Security Headers, ich rolę w ochronie strony oraz sposób sprawdzania i wdrażania nagłówków bez blokowania potrzebnych funkcji.