Wszystkie artykuły

Nagłówki HTTP: co kryje się w każdym żądaniu i odpowiedzi

Wiele polskich firm hostuje swoje strony za CDN, żeby przyspieszyć dostęp z lokalnych sieci ISP — a to oznacza dodatkowe nagłówki dostawcy, takie jak cf-ray czy cf-cache-status u Cloudflare, wskazujące, czy odpowiedź przyszła z pamięci podręcznej brzegowej, czy z serwera źródłowego. Do tego dochodzi nagłówek Vary, który mówi pośredniczącym serwerom cache, według jakich innych nagłówków (na przykład Accept-Language) należy przechowywać osobne wersje tej samej strony.

Nagłówki żądania kontra nagłówki odpowiedzi

Nagłówki żądania (na przykład Accept, User-Agent, Cookie) przeglądarka wysyła do serwera, opisując siebie i swoje oczekiwania. Nagłówki odpowiedzi (Content-Type, Set-Cookie, Cache-Control) serwer wysyła w odpowiedzi, opisując zwrócone dane i instrukcje dla przeglądarki.

Po co potrzebny jest Content-Type

Nagłówek Content-Type informuje przeglądarkę, jak interpretować treść odpowiedzi: jako stronę HTML, dane JSON, obraz czy plik do pobrania. Bez poprawnej wartości tego nagłówka przeglądarka może próbować wyświetlić JSON jako zwykły tekst lub odwrotnie — niepoprawnie obsłużyć HTML.

Jak Cache-Control zarządza buforowaniem

Wartości takie jak max-age=3600 lub no-cache informują przeglądarkę i pośredniczące serwery proxy, jak długo można używać zbuforowanej wersji zasobu bez ponownego żądania do serwera. Nieprawidłowe skonfigurowanie tego nagłówka to częsta przyczyna, dla której użytkownicy widzą nieaktualną wersję strony.

Do czego to się przydaje

  • Diagnozowanie, dlaczego przeglądarka nieprawidłowo wyświetla odpowiedź API.
  • Sprawdzenie nagłówków specyficznych dla CDN oraz nagłówka Vary przy diagnozowaniu problemów z cache.
  • Potwierdzenie, że strona jest serwowana przez HTTPS — obowiązkowy warunek działania Web Crypto API, na którym opierają się narzędzia do hashowania i JWT tej samej strony.

Dlaczego jeden nagłówek czasami występuje kilka razy

HTTP pozwala, by ten sam nagłówek pojawił się wielokrotnie w jednej odpowiedzi — najczęstszym przykładem jest kilka linii Set-Cookie, po jednej dla każdego ustawianego cookie. Większość pozostałych powtarzających się nagłówków można połączyć w jedną wartość oddzieloną przecinkami bez zmiany znaczenia, ale Set-Cookie jest celowym wyjątkiem, ponieważ przecinek może być prawowitą częścią wartości cookie.

Wypróbuj narzędzie