Sobes.tech
Junior

Jakie klucze są przesyłane z serwera do klienta?

sobes.tech AI

Odpowiedź od AI

Główne klucze przesyłane z serwera do klienta są używane w mechanizmach buforowania HTTP:

  • Cache-Control: Kontroluje zachowanie buforowania zarówno po stronie klienta, jak i proxy. Wskazuje, czy zasób może być buforowany, jego maksymalny czas życia (max-age), konieczność ponownej walidacji (no-cache), zakaz buforowania (no-store) i inne dyrektywy.
  • Expires: Wskazuje dokładną datę i czas, po którym zasób buforowany jest uważany za nieaktualny. Jest przestarzały (deprecated) w porównaniu z Cache-Control: max-age.
  • ETag: Unikalny identyfikator wersji zasobu. Używany w nagłówku If-None-Match przy powtarzających się żądaniach do sprawdzania aktualności kopii w pamięci podręcznej. Jeśli ETag na serwerze zgadza się z przesłanym przez klienta, serwer zwraca status 304 Not Modified.
  • Last-Modified: Data i czas ostatniej modyfikacji zasobu. Używany w nagłówku If-Modified-Since do tego samego celu co ETag. Jeśli zasób nie został zmieniony od podanej daty, serwer zwraca 304 Not Modified.

Oprócz buforowania, mogą być przesyłane klucze związane z bezpieczeństwem i zarządzaniem sesjami:

  • Set-Cookie: Ustawia cookie po stronie klienta. Zawiera nazwę cookie, wartość, domenę, ścieżkę, okres ważności, flagi (HttpOnly, Secure, SameSite).
  • Strict-Transport-Security (HSTS): Wskazuje przeglądarce, że dostęp do domeny powinien odbywać się tylko przez HTTPS przez określony czas.
  • Public-Key-Pins (HPKP - przestarzałe): Wskazuje przeglądarce, które klucze publiczne powinny być powiązane z domeną. Używany do zapobiegania atakom mitm z użyciem sfałszowanych certyfikatów. Jest przestarzały i niezalecany.