Cache-Control

Kasia Bielawska
>
Kasia Bielawska

Co to jest Cache-Control?

Cache-Control to nagłówek protokołu HTTP, który służy do instruowania przeglądarek internetowych oraz serwerów pośredniczących (np. CDN), w jaki sposób mają przechowywać zasoby strony w pamięci podręcznej. Jest to jeden z najważniejszych elementów wpływających na wydajność witryny, ponieważ pozwala uniknąć wielokrotnego pobierania tych samych danych z serwera.

Dzięki odpowiednim dyrektywom Cache-Control, przeglądarka wie, czy dany obrazek, skrypt CSS lub plik JavaScript może zostać wczytany z lokalnego dysku użytkownika, czy też musi zostać pobrany ponownie. Poprawnie skonfigurowany hosting wysyła te instrukcje automatycznie, co drastycznie skraca czas ładowania strony przy kolejnych odwiedzinach.

Jak działa Cache-Control w praktyce?

Kiedy użytkownik odwiedza Twoją stronę, serwer przesyła odpowiedź zawierającą nagłówek Cache-Control. Może on zawierać różne polecenia, takie jak:

  • max-age – określa, przez ile sekund zasób może być uznany za aktualny,
  • no-cache – pozwala przechować zasób, ale przed użyciem trzeba sprawdzić w serwerze, czy jest nadal aktualny,
  • no-store – zabrania zapisywania zasobu w cache,
  • public – pozwala przechowywać zasób także we współdzielonych cache’ach,
  • private – wskazuje, że zasób powinien być przechowywany tylko w cache przeglądarki użytkownika,
  • s-maxage – działa podobnie do max-age, ale dotyczy cache współdzielonych, np. CDN,
  • must-revalidate – po wygaśnięciu zasobu wymusza ponowne sprawdzenie go na serwerze.

Po co stosuje się Cache-Control?

Najważniejszy cel jest prosty: strona ma działać szybciej i sprawniej. Dobrze ustawiony cache:

  • skraca czas ładowania strony,
  • zmniejsza liczbę zapytań do serwera,
  • pomaga lepiej wykorzystać CDN,
  • ogranicza zużycie zasobów przy dużym ruchu,
  • pozwala lepiej zarządzać treściami dynamicznymi i statycznymi.

To ważne zwłaszcza wtedy, gdy na stronie są grafiki, pliki stylów i skrypty, które nie zmieniają się co chwilę. W takim przypadku sensownie ustawiony cache może odciążyć także serwer vps albo bardziej rozbudowaną infrastrukturę. Jednocześnie trzeba uważać przy podstronach dynamicznych, takich jak koszyk, panel klienta czy ekran logowania.