Expires – pozwól przeglądarkom przechowywać stronę w pamięci podręcznej

Pamięć podręczna jest jednym ze sposobów przyspieszania wydajności strony. Polega ona na przechowywaniu na komputerze użytkownika fragmentów strony, które pozostają niezmienne przez długi czas i nie ma potrzeby każdorazowo ich pobierać. Dzięki temu znacząco zmniejsza się obciążenie łącza internetowego podczas przeglądania kolejnych podstron serwisu. Serwer musi jednak pozwolić przeglądarce na przechowywanie tych informacji.

Jak to działa?

Serwer WWW na każde otrzymane żądanie wysyła odpowiedź. Odpowiedź można podzielić na dwie części:

  • Nagłówek odpowiedzi – zawiera wszelkie informacje na temat wyniku żądania, np. czy się powiodło, jaki jest rodzaj zwracanej zawartości itp.
  • Zawartość odpowiedzi – zawartość, o którą było pytanie, np. kod strony internetowej, obraz, styl CSS.

Informację o tym, czy, i co istotne, na jak długo można przechowywać pamięć podręczną, znajduje się właśnie w nagłówku odpowiedzi serwera. #wiemyjak

Jakich nagłówków potrzebujesz?

Nie będziemy tutaj omawiać wszystkich możliwości ustawiania nagłówków Cache-control i Expires, ponieważ opcji ustawienia tych parametrów jest bardzo dużo. Nie skupiamy się na wszystkich możliwościach konfiguracyjnych jakie nam przynoszą, a na tym, żeby strona była odpowiednio „cache-owana”. Podamy tylko najbardziej typowe przykłady dla najpopularniejszych serwerów HTTP.

Jakiego serwera używasz i jaka to różnica?

To właśnie serwer odpowiada za wstawienie odpowiednich nagłówków. Jeśli korzystamy z gotowego rozwiązania serwerowego (a zazwyczaj tak jest), to wystarczy kilku liniowa konfiguracja. Konfiguracja może być różna w zależności od tego jaki to serwer.

Często serwer HTTP przedstawia się w nagłówku. Wystarczy wysłać zapytanie i sprawdzić nagłówki odpowiedzi. Przykładowy sposób:

Na stronie http://web-sniffer.net/ wpisujemy adres strony. Otrzymujemy tabelkę:

expires tabelka

Apache

Apache to najpopularniejszy serwer WWW. Jego konfigurację można nadpisywać w pliku .htaccess znajdującym się w katalogu głównym strony. Serwer musi mieć uruchomiony moduł mod_expires.

Przykładowa zawartość .htaccess:

<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresByType image/jpg "access plus 1 year"
  ExpiresByType image/jpeg "access plus 1 year"
  ExpiresByType image/gif "access plus 1 year"
  ExpiresByType image/png "access plus 1 year"
  ExpiresByType text/css "access plus 1 month"
  ExpiresByType application/pdf "access plus 1 month"
  ExpiresByType text/x-javascript "access plus 1 month"
  ExpiresByType text/javascript "access plus 1 month"
  ExpiresByType application/javascript "access plus 1 month"
  ExpiresByType image/x-icon "access plus 1 year"
  ExpiresDefault "access plus 2 days"
</IfModule>

Warunek <ifmodule> zapewnia, że wpisy konfiguracji zostaną ustawione tylko kiedy aktywny jest moduł mod_expires.c. Zapobiegnie to ewentualnemu błędowi.

Wpis ExpiresByType określa jak długo plik może być przechowywany. W powyższym przykładzie obraz JPG przez rok, a plik CSS przez miesiąc od pobrania. Skutkuje to dodaniem nagłówków do odpowiedzi na zapytania o te rodzaje plików.

Expires: Thu, 09 Jun 2016 08:26:01 GMT
Cache-Control: max-age=2592000

NGINX

W przypadku tego serwera może być różnie. Czasami potrzebne jest skonfigurowanie serwera z poziomu administratora gdyż w domyśle NGINX nie wykorzystuje pliku .htaccess.

Przykład konfiguracji tworzonej z poziomu administratora – wpisy powinny znaleźć się wewnątrz konfiguracji Virtual Hosta.

location ~* \.(png|jpg|jpeg|gif|ico)$ {
expires 1y;
log_not_found off;
}

location ~* \.(js|css)$ {
expires 30d;
log_not_found off;
}

Po dodaniu konieczny jest restart usługi „nginx”.

Jeśli nie masz dostępu do konfiguracji serwera, a twoje zasoby nie mają ustawionych stosownych nagłówków, skontaktuj się z administratorem.

IdeaWebServer

Jest to autorski serwer Home.pl – jest w dużej mierze zgodny z Apache, ale nie do końca.

Konfiguracja umieszczana jest w .htaccess

:Location *.(gif|jpg|jpeg|png)
Expires A31536000
:Location

:Location *.(js|css)
Expires A2592000
:Location

I tutaj również dla obrazów wartość jest ustawiona na rok, a dla plików CSS i JavaScript na miesiąc.

Podsumowanie

Niezależnie od tego jaki serwer jest używany, aby strona była przechowywana w pamięci podręcznej przeglądarki, dążymy do tego, aby zasoby, które chcemy przechowywać były zwracane z nagłówkami Expires oraz Cache-control.

Komentarze

Dodaj komentarz

  1. infomiasto pisze:

    A czy da się dodać do tego aby nie pobierał też tych kodów przycisków udostępniania facebokk, twiter itp? Oraz czcionki google font aby też były w pamięci?

  2. Daniel Kasprzyk EACTIVE pisze:

    @infomiasto

    Niestety nie ma takiej możliwości, ponieważ te pliki pobieramy z zewnętrznego serwera danej usługi. Zmieniać wartości Expires możemy jedynie dla zasobów pochodzących z serwera, którym zarządzamy.

Zamów bezpłatną wycenę

Imię i Nazwisko
E-mail*
Numer telefonu*
Adres strony internetowej*
Treść wiadomości
TAK

Jeśli chcesz zostawić nam więcej danych wypełnij brief.

Otrzymaliśmy twoje zgłoszenie

Dziękujemy!

 

Co dalej?

  1. Otrzymasz od nas maila potwierdzającego zgłoszenie.
  2. Nasz wyspecjalizowany zespół już niedługo skontaktuje się z Tobą i opowie o dalszym procesie współpracy.
  3. W oczekiwaniu na telefon zapraszamy do zapoznania się z naszymi REFERENCJAMI.

KLAUZULA INFORMACYJNA

Informujemy, że:

  1. Administratorem Twoich danych osobowych jest EACTIVE wiemy jak sp. z o.o. sp. k. z siedzibą w Świętej Katarzynie, zarejestrowana pod adresem ul. Główna 26/2, 55-010 Święta Katarzyna, reprezentowaną przez: Michała Kliszczaka - Prezesa Zarządu.
  2. Administrator nie wyznaczył Inspektora Ochrony Danych Osobowych. Wszelkie kwestie dotyczące danych osobowych można kierować na e-mail: ochronadanych@eactive.pl lub pisemnie na adres korespondencyjny: EACTIVE wiemy jak sp. z o.o. sp. k. ul. Aleksandra Zelwerowicza 18 A, 53-676 Wrocław.
  3. Twoje dane będą przetwarzane w celu odpowiedzi na zapytanie oraz przygotowania i przedstawienia propozycji współpracy.
  4. Podstawę prawną przetwarzania Twoich danych osobowych jest art. 6 ust. 1 lit. a RODO, czyli Twoja zgoda na przetwarzanie danych osobowych w jednym lub większej liczbie określonych celów oraz art. 6 ust. 1 lit. b RODO, zgodnie z którym przetwarzanie danych jest konieczne w celu podjęcia działań na żądanie osoby, której dane dotyczą.
  5. Dane osobowe nie będą przekazywane innym odbiorcom.
  6. Twoje dane osobowe będą przetwarzane do czasu cofnięcia wyrażonej zgody bądź złożenia sprzeciwu wobec przetwarzania danych.
  7. Podanie danych osobowych jest dobrowolne, jednak podanie adresu e-mail i numeru telefonu jest niezbędne do obsługi zapytania.
  8. Administrator nie przetwarza Twoich danych osobowych przy użyciu narzędzi do zautomatyzowanego podejmowania decyzji, w tym profilowania.
  9. Przysługuje Ci prawo do żądania od Administratora dostępu do Twoich danych osobowych, ich sprostowania, usunięcia, ograniczenia przetwarzania lub ich przeniesienia.
  10. Przysługuje Ci prawo do wniesienia sprzeciwu wobec przetwarzania Twoich danych, a także prawo do cofnięcia wyrażonej zgody w dowolnym momencie - wycofanie zgody nie ma wpływu na zgodność z prawem przetwarzania, którego dokonano na podstawie Twojej zgody przed jej wycofaniem.
  11. W przypadku uznania, że przetwarzanie przez Administratora danych osobowych narusza przepisy RODO przysługuje Ci prawo do wniesienia skargi do organu nadzorczego (tj. Prezesa Urzędu Ochrony Danych Osobowych).

Więcej informacji na temat zasad przetwarzania i ochrony danych osobowych przez EACTIVE wiemy jak sp. z o.o. sp. k. znajdziesz w naszej Polityce Prywatności, dostępnej tutaj.

Rozumiem