Czym są nagłówki HTTP? Z czego się składają? Pełna lista wszystkich nagłówków protokołu HTTP z wyjaśnieniami i omówieniem.
Spis treściNagłówki HTTP, wysyłane przez przeglądarki internetowe, przybierają rozmaite formy. Warto poznać ich pełną listę, zależnie od wywołanego żądania lub wygenerowanej odpowiedzi. Ważne też, by rozumieć ich znaczenie i wpływ na funkcjonowanie strony internetowej.
Nagłówki HTTP odgrywają znaczącą rolę w internecie. Zależnie od Twoich potrzeb, z ich wykorzystaniem możesz poinformować przeglądarkę odbiorcy o szczegółowym działaniu serwisu. W ten sposób usprawnisz i przyśpieszysz jego pracę, a także sprawisz, że stanie się on bardziej funkcjonalny dla odbiorców. Odczują oni ulgę za każdym razem, po wpisaniu Twojego adresu URL w pasek adresu.
Jaka jednak jest budowa nagłówka od strony technicznej i co możesz za jego pośrednictwem przekazać przeglądarce? Stworzyliśmy pełne zestawienie wszystkich nagłówków HTTP. Dodatkowo wzbogaciliśmy też listę o podstawowe wytłumaczenie funkcjonalności dotyczących każdego rozwiązania. Dzięki temu poznasz nie tylko wszystkie nazwy i wartości nagłówka, ale i jego najważniejsze zadania. W ten sposób szybko znajdziesz rozwiązania, które sprawdzą się na Twojej stronie WWW.
Czym są nagłówki HTTP?
W nagłówkach HTTP zawarte są dodatkowe informacje przekazywane klientowi i serwerowi. Odbywa się to za pomocą żądań lub odpowiedzi HTTP, które mają specyficzną składnię. Są zbudowane kolejno z:
- nazwy,
- dwukropka,
- wartości.
Co istotne, w wartościach nie jest rozróżniana wielkość liter. Przybierają różne formy i niosą ze sobą rozmaite treści. Bywają grupowane według znaczeń kontekstowych lub zgodnie z kolejnością obsługiwania ich przez serwer Proxy.
Co do zasady protokół HTTP wymaga, aby nagłówki wysyłane były między komputerem klienta a serwerem. Najłatwiej jest zatem wyobrazić sobie, że jest to przeglądarka internetowa i docelowy adres URL. Wpływają na poprawne i zgodne z intencjami obu stron połączenie.
Nagłówki HTTP bywają bardzo przydatne. Czasem sprawne działanie witryny jest bez niektórych z nich praktycznie niewykonalne. Można umieścić w nich sugestie dotyczące wczytywania poszczególnych elementów strony lub rodzaju przesyłanych treści. Znajdują się w pierwszej linii kodu, a od reszty zawartości oddziela je jedna pusta linia.
Zastosowanie nagłówków HTTP
Nagłówki HTTP pozwalają na przesyłanie i odbieranie metadanych dotyczących witryny WWW. Jak jednak te możliwości mogą zostać wykorzystane w praktyce przez osoby prowadzące np. własną stronę internetową?
Przeglądarka internetowa jest w stanie pozyskać wiele danych o serwisie WWW. Możesz więc wykorzystać to na swoją korzyść na kilka różnych sposobów. Zarówno po to, aby przekazać określone informacje, jak również w celu kierowania swoim miejscem w sieci w określony sposób.
Dzięki odpowiedniemu pytaniu, czy żądaniu HTTP, możesz więc np. usprawnić swoje działania marketingowe. Właściwy nagłówek HTTP pozwoli Ci śledzić źródła wizyt i na tej podstawie optymalizować swoje działania reklamowe. Dowiesz się błyskawicznie, czy danych użytkownik przyszedł do Ciebie z Facebooka, Instagrama lub innej platformy. Tak zaplanujesz dalszą strategię reklamową, poprawiającą wyniki konwersji.
Kolejny przykład to wykorzystanie nagłówków do tego, by przyśpieszyć stronę internetową. Niektóre rozwiązania wyjaśniają przeglądarkom, jak powinny postępować z danymi zasobami. Dzięki temu są one w stanie wcześniej je pobierać i przechowywać. W konsekwencji takiego działania strona internetowa ładuje się szybciej. To z kolei może zapewnić Ci przychylną ocenę wystawioną przez roboty Google. Zadowoleni są też Twoi użytkownicy, którzy nie muszą długo czekać, aż na ekranach ich urządzeń pojawi się oczekiwania treść.
Nagłówki HTTP w pozycjonowaniu
Nagłówki HTTP są istotne również z punktu widzenia pozycjonowania SEO. Jak wspominaliśmy, są w stanie przyśpieszyć działanie witryny internetowej i zyskać przychylność Google. To natomiast pierwszy krok ku zdobyciu wysokiego miejsca w wynikach wyszukiwania. Im szybciej ładuje się Twoje miejsce w sieci, tym wyższe prawdopodobieństwo, że uda Ci się przekonać do siebie algorytmy wyszukiwarek. Użytkownicy z kolei najchętniej wchodzą na witryny znajdujące się na samej górze wyników wyświetlanych przez Google.
Pełna lista nagłówków w protokole HTTP
Czas przejść do części praktycznej, czyli kompletnej listy nagłówków w protokole HTTP. Pogrupowaliśmy je na kilka kategorii, w zależności od funkcjonalności. Poszczególne metody HTTP różnią się od siebie, dlatego też każdą z nich krótko opisaliśmy. Dzięki temu dowiesz się, jakie korzyści przyniesie Ci korzystanie z nich.
Uwierzytelnianie
Nagłówki HTTP związane z działaniami uwierzytelniającymi:
- WWW-Authenticate – jego zadaniem jest definiowanie metody uwierzytelniania, która powinna zostać wykorzystana do uzyskania dostępu do określonego zasobu;
- Authorization – zawiera poświadczenia niezbędne do uwierzytelnienia klienta użytkownika (np. przeglądarki internetowej) na serwerze;
- Proxy-Authenticate – definiuje metodę uwierzytelniania, podobnie jak WWW-Authenticate. W tym przypadku jednak mowa o metodzie, która powinna zostać użyta do uzyskania dostępu do zasobu zlokalizowanego za serwerem proxy;
- Proxy-Authorization – zawiera poświadczenia służące do uwierzytelniania User-agent na serwerze proxy.
Buforowanie
Nagłówki HTTP związane z procesem buforowania witryny:
- Age – czas, przez który obiekt znajdował się w pamięci podręcznej proxy (liczony w sekundach);
- Cache-Control – zawiera dyrektywy dotyczące mechanizmów buforowania. Obejmuje zarówno żądanie HTTP, jak i odpowiedź HTTP;
- Clear-Site-Data – jego zadaniem jest czyszczenie danych przeglądania, powiązanych z witryną wysyłającą żądania HTTP (np. pamięć, pliki cookie czy pamięć podręczną cache);
- Expires – pozwala na określenie dokładnej daty i godziny, po której odpowiedź serwera uznawana jest za nieaktualną;
- Pragma – rozwiązanie charakterystyczne dla implementacji. Niesie ze sobą różne rezultaty, a zastosować go można w dowolnym miejscu łańcucha żądań/odpowiedzi. Jego zadaniem jest zapewnienie zgodności wstecznej z HTTTP/1.0, gdzie nagłówek Cache Control jeszcze nie był obecny;
- Warning – ostrzeżenie o potencjalnych problemach (to rozwiązanie uważane za przestarzałe, którego używanie nie jest już polecane).
Wskazówki dla klientów (ang. Client hints)
W tej kategorii znajdziesz każdy nagłówek żądania, dostarczający przydatnych informacji o kliencie. Mogą one dotyczyć różnych parametrów i zawierać informacje umożliwiające serwerom optymalizację połączenia. Serwery WWW korzystają z polecenia Accept-CH proaktywnie, aby zdobyć od klienta pożądane wskazówki w postaci nagłówków. Następnie klient może wyposażyć w nie też kolejne zapytanie.
- Accept-CH – serwer WWW może ogłosić obsługę wskazówek dla klientów (Client hints) wykorzystując do tego Accept-CH (jest to rozwiązanie eksperymentalne, którego działanie może ulegać jeszcze modyfikacjom);
- Accept-CH-Lifetime – wykorzystywany przez serwer, by skierować do klienta prośbę o zapamiętanie określonego zestawu wskazówek dla klientów. Są one obsługiwane przez serwer przez określony czas. Umożliwia to dostarczanie kolejnych Client hints przy kolejnych żądaniach wysyłanych do pierwotnego serwera (rozwiązanie eksperymentalne i uważane za przestarzałe);
- Critical-CH – serwery wykorzystują Critical-CH wraz z Accept-CH do określania, że konkretne wskazówki dla klientów są też tzw. critical client hints.
Wskazówki dla klienta użytkownika przybierają różne formy i dotyczą najróżniejszych kwestii. Poniżej przedstawiliśmy je w podziale na kilka kategorii.
Wskazówki User-Agent (UA)
Wskazówki tego typu są rozwiązaniami, w których wartość nagłówka żądania zawiera informacje o kliencie użytkownika. Może natomiast dotyczyć różnych jego kwestii, zależnie od potrzeb inicjatora:
- Sec-CH-Ua – dotyczy wersji i brandingu klienta użytkownika (określany jako rozwiązanie eksperymentalne);
- Sec-CH-UA-Arch – dotyczy podstawowej architektury platformy klienta użytkownika (określany jako rozwiązanie eksperymentalne);
- Sec-CH-US-Bitness – dotyczy „bitowości” architektury procesora CPU agenta użytkownika, np. 64-bitowy (określany jako rozwiązanie eksperymentalne);
- Sec-CH-UA-Full-Version – dotyczy pełnej wersji semantycznej agenta użytkownika (określany jako rozwiązanie przestarzałe);
- Sec-CH-UA-Full-Version-List – dotyczy pełnej wersji semantycznej agenta użytkownika dla każdego brandu na liście brandingowej klienta (określany jako rozwiązanie eksperymentalne);
- Sec-CH-UA-Mobile – dotyczy klientów użytkowników, działających lub preferujących mobilne środowiska (określany jako rozwiązanie eksperymentalne);
- Sec-CH-UA-Model – dotyczy modelu urządzenia klienta użytkownika (określany jako rozwiązanie eksperymentalne);
- Sec-CH-UA-Platform – dotyczy podstawowego systemu operacyjnego klienta użytkownika (określany jako rozwiązanie eksperymentalne);
- Sec-CH-UA-Platform-Version – dotyczy podstawowej wersji systemu operacyjnego klienta użytkownika (określany jako rozwiązanie eksperymentalne);
- Sec-CH-UA-Prefers-Color-Scheme – dotyczy preferencji użytkownika w kwestii jasnej i ciemnej kolorystyki (określany jako rozwiązanie eksperymentalne);
- Sec-CH-UA-Prefers-Reduced-Motion – dotyczy preferencji użytkownika w kwestii widoczności animacji i zmian układu zawartości (określany jako rozwiązanie eksperymentalne).
Wskazówki dotyczące klienta urządzenia
Rozwiązania uważane już za przestarzałe. Korzystanie z nich nie jest zalecane:
- Content-DPR – nagłówek odpowiedzi, którego zadaniem jest potwierdzanie współczynnika pikseli w żądaniach, w których zastosowano nagłówek DPRdo wybrania zasobu obrazu;
- Device-Memory – dotyczy przybliżonej ilości dostępnej pamięci RAM klienta;
- DPR – określa współczynnik pikseli urządzenia klienckiego (liczba pikseli urządzenia fizycznego, która odpowiada każdemu pikselowi CSS);
- Viewport-Width – wskazuje szerokość układu w pikselach CSS. Wartość liczbowa określa ilość pikseli, zaokrągloną do górnego pułapu;
- Width – wskazuje żądaną szerokość zasobu w pikselach (wewnętrzny rozmiar obrazu).
Wskazówki dotyczące klienta sieciowego
Te wskazówki dla klientów sieciowych pozwalają serwerowi wybierać wysyłane informacje na podstawie wyborów użytkownika, opóźnienia sieci czy przepustowość.
- Downlink – określa przybliżoną przepustowość połączenia klienta z serwerem (określana w Mb/s);
- ECT – określa tzw. profil sieciowy czy efektywny typ połączenia, który najlepiej odpowiada przepustowości połączenia i opóźnieniu;
- RTT – określa Round Trip Time, czyli minimalny czas niezbędny do przesłania sygnału od nadawcy do odbiorcy i z powrotem (określany w milisekundach);
- Save-Data – znacznik on wskazujący, że klient użytkownika preferuje zmniejszone użycie danych (określany jako rozwiązanie eksperymentalne).
Warunkowe
- Last-Modified – określa datę ostatniej modyfikacji zasobu, pozwalająca porównać kilka jego wersji. To rozwiązanie mniej dokładne niż ETag, które opiszemy za chwilę. Bywa natomiast łatwiejsze do obliczenia w części środowisk. Jest ponadto wykorzystywane do zmiany zachowania żądania HTTP w przypadku żądań warunkowych z If-Modified-Since oraz If-Unmodified_Since;
- ETag – dotyczy unikatowego ciągu wskazującego i identyfikującego daną wersję zasobu. Bywa wykorzystywany do zmiany zachowania żądań przez żądania warunkujące z If-Match oraz If-None-Match;
- If-Match – dzięki niemu żądanie jest warunkowe i stosuje określoną metodę tylko wtedy, gdy dany zasób jest zgodny z podanym tagiem ETag;
- If-None-Match – dzięki niemu żądanie jest warunkowe i stosuje określoną metodę tylko wtedy, gdy dany zasób nie jest zgodny z żadnym z podanych tagów ETag. W większości przypadków wykorzystywane jest do aktualizowania pamięci podręcznej. Alternatywnie można skorzystać z niego, by np. zapobiec przekazywaniu nieistniejącego zasobu;
- If-Modified-Since – sprawia, że żądanie jest warunkowe i oczekuje wysłania zasobu wyłącznie, jeśli został zmodyfikowany po określonej dacie. Pozwala na przesyłanie danych tylko wtedy, gdy pamięć podręczna nie jest aktualna;
- If-Unmodified-Since – sprawia, że żądanie jest warunkowe i oczekuje wysłania zasobu wyłącznie, jeśli nie został zmodyfikowany po określonej dacie;
- Vary – pozwala na określenie sposobu dopasowania nagłówków żądań. Na tej podstawie możliwe jest zdecydowanie, czy buforowana odpowiedź może zostać użyta, czy też konieczne jest żądanie nowej z serwera pochodzenia.
Zarządzanie połączeniami
- Connection – określa, czy połączenie sieciowe pozostanie otwarte po zakończeniu bieżącej transakcji;
- Keep-Alive – określa, przez jak długi czas trwałe połączenie powinno pozostawać otwarte.
Negocjowanie treści
- Accept – ma informować serwer o typach danych, które mogą zostać odesłane;
- Accept-Encoding – algorytm kodowania, który może być używany w zasobie odesłanym (najczęściej algorytm kompresji jak gzip czy brotli);
- Accept-Language – przekazuje serwerowi informacje o języku ludzkim, który ma zostać odesłany. Co natomiast istotne, jest to tylko wskazówka, a serwer nie powinien nadpisywać wyraźnego wyboru użytkownika (np. z listy rozwijanej), bo w przeciwnym razie może dojść do konfliktu.
Elementy kontrolne
- Expect – wskazuje wytyczne, które musi spełnić serwer, by żądanie mogło zostać prawidłowo obsłużone;
- Max-Forwards – podczas korzystania z funkcji TRACE określa maksymalną liczbę przeskoków możliwych do wykonania, zanim żądanie zostanie odesłane do nadawcy.
- Cookie – zawiera zapisane pliki cookie, które zostały wcześniej wysłane przez serwer z nagłówkiem Set-Cookie;
- Set-Cookie – wysyłanie plików cookie z serwera do klienta użytkownika.
Mechanizm CORS
CORS (Cross-Origin Resource Sharing): co to? Jak działa? Nagłówki związane z zaawansowanym mechanizmem bezpieczeństwa stron WWW:
- Access-Control-Allow-Origin – wskazuje, czy odpowiedź serwera może zostać udostępniona;
- Access-Control-Allow-Credentials – wskazuje, czy odpowiedź na żądanie może być widoczna, jeśli flaga poświadczeń ma wartość true;
- Access-Control-Allow-Headers – w odpowiedzi na inspekcję wstępną służy wskazaniu, które nagłówki HTTP mogą być używane podczas wysyłania rzeczywistego żądania;
- Access-Control-Allow-Methods – określa metody, które są dozwolone w czasie uzyskiwania dostępu do określonego zasobu w odpowiedzi na żądanie inspekcji wstępnej;
- Access-Control-Expose-Headers – określa nagłówki, które mogą być widoczne w ramach odpowiedzi (wyświetlając ich nazwy);
- Access-Control-Max-Age – określa, przez jaki czas wyniki żądania inspekcji wstępnej mogą być buforowane;
- Access-Control-Request-Headers – informuje serwer podczas wysyłania żądania inspekcji wstępnej, które nagłówki HTTP zostaną wykorzystane podczas realizacji rzeczywistego żądania;
- Access-Control-Request-Method – wykorzystywany w czasie żądania inspekcji wstępnej. Ma informować serwer, która metoda HTTP zostanie wykorzystana podczas realizacji rzeczywistego żądania;
- Origin – wskazuje, skąd pochodzi pobieranie;
- Timing-Allow-Origin – określa źródła wyświetlające wartości atrybutów pobranych z wykorzystaniem Resource Timing API. W przeciwnym razie byłyby one zgłaszane jako zero (z uwagi na ograniczenia między poszczególnymi źródłami).
Pobieranie
- Content-Disposition – określa wyświetlanie danego zasobu w tekście, czy też wskazane jest zastosowanie pobierania. W tym drugim przypadku przeglądarka internetowa wyświetla okno dialogowe typu „Zapisz jako”.
Informacje o treści komunikatu
- Content-Length – określa rozmiar zasobu (podaje wartość w liczbie dziesiętnej bajtów);
- Content-Type – określa typ nośnika zasobu;
- Content-Encoding – określa algorytm kompresji;
- Content-Language – określa ludzki język, przeznaczony dla odbiorców. W ten sposób umożliwi użytkownikom rozróżnienie zgodne z preferowanym językiem;
- Content-Location – określa alternatywną lokalizację zwracanych danych.
Serwery Proxy
- Forwarded – zawiera informacje zmieniane lub tracone w momencie, gdy serwer proxy jest zaangażowany w żądanie;
- X-Forwarded-For – odpowiada za identyfikację źródłowych adresów IP klienta łączącego się z serwerem poprzez serwer proxy (określany jako rozwiązanie przestarzałe);
- X-Forwarded-Host – odpowiada za identyfikację oryginalnego hosta, wykorzystanego przez klienta do nawiązania połączenia z serwerem proxy (określany jako rozwiązanie przestarzałe);
- X-Forwarded-Proto – określa, jaką wersję protokołu wykorzystał klient do nawiązania połączenia z serwerem proxy – HTTP lub HTTPS (określany jako rozwiązanie przestarzałe);
- Via – mogą pojawiać się w nagłówkach żądań oraz odpowiedzi. Są dodawane przez serwery proxy (zarówno forward, jak i zwrotne).
Prywatność
- Sec-GPC – określa, czy użytkownik zgodził się na udostępnianie lub sprzedaż jego danych osobowych stronom trzecim (określany jako rozwiązanie przestarzałe, a zarazem eksperymentalne).
Przekierowania
- Location – określa adres URL, na który ma zostać przekierowana strona;
- Refresh – wymusza na przeglądarce ponowne załadowanie strony internetowej lub przekierowanie do innej. Przyjmuje tę samą wartość co meta element http-eguiv=”refresh”.
Konspekty żądań
- From – zawiera adres e-mail użytkownika kontrolującego User-Agenta;
- Host – wskazuje nazwę domeny serwera w przypadku hostingu wirtualnego. Opcjonalnie może określać numer portu TCP serwera;
- Referer – wskazuje adres strony internetowej, z której został kliknięty link prowadzący do aktualnie żądanej witryny;
- Referrer-Policy – określa, jakie informacje o stronie odsyłającej, znajdujące się w nagłówku Referer, mogą być dołączone do wysyłanych żądań;
- User-Agent – pozwala elementom równorzędnym protokołu sieciowego na zidentyfikowanie typu aplikacji, wersji oprogramowania, systemu operacyjnego i innych informacji o User-Agent.
Konteksty odpowiedzi
- Allow – prezentuje zestaw metod żądań HTTP, które są obsługiwane przez zasób;
- Server – prezentuje komplet informacji o oprogramowaniu wykorzystywanym przez serwer źródłowy do obsługi danego żądania.
Żądania zakresu
- Accept-Rangers – określa obsługę żądania zakresu. Jeśli tak, to precyzuje, w jakiej jednostce zakres ten może zostać wyrażony;
- Range – określa część dokumentu, która może zostać zwrócona przez serwer;
- If-Range – umożliwia stworzenie żądania zakresu warunkowego. Może być ono zrealizowane tylko wtedy, gdy dany element ETag lub data są zgodne z danym zasobem zdalnym. Dzięki temu nie dochodzi do pobierania dwóch zakresów z niezgodnej wersji zasobu;
- Content-Range – określa położenie komunikatu częściowego w komunikacie o pełnej treści.
Bezpieczeństwo
- COEP (Cross-Origin-Embedder-Policy) – pozwala serwerowi na zadeklarowanie zasad, według których osadzany będzie dany dokument;
- COOP (Cross-Origin-Opened-Policy) – uniemożliwia innym domenom kontrolowanie i otwieranie okna;
- CORP (Cross-Origin-Resource-Policy) – uniemożliwia innym domenom odczytywanie odpowiedzi zasobów, w przypadku których został zastosowany;
- CSP (Content-Security-Policy) – steruje zasobami, które mogą być załadowane dla konkretnej strony przez klienta użytkownika;
- Content-Security-Policy-Report-Only – pozwala na eksperymentowanie z różnymi rozwiązaniami poprzez monitorowanie, ale bez egzekwowania ich efektów. Raporty o naruszeniach są zbiorami dokumentów JSON, które następnie wysyłane są za pośrednictwem metody POST do wskazanego identyfikatora URI;
- Expect-CT – dzięki niemu witryny mogą wyrazić zgodę na zgłaszanie i/lub egzekwowanie wymagań dotyczących przejrzystości certyfikatów;
- Origin-Isolation – oferuje mechanizm pozwalający aplikacjom na izolowanie ich źródeł (określany jako rozwiązanie eksperymentalne);
- Permissions-Policy – oferuje mechanizm zezwalania oraz blokowania korzystania z funkcji przeglądarki we własnej ramce witryny i w <iframe>, które osadza;
- HSTS (Strict-Transport-Security) – wymusza komunikację z użyciem protokołu HTTPS zamiast HTTP dzięki HSTS;
- Upgrade-Insecure-Requests – wysyła sygnał do serwera, w którym określa preferencje klienta, dotyczące zaszyfrowanej i uwierzytelnionej odpowiedzi. Zawiera informację, czy może pomyślnie obsłużyć Upgrade-insecure-requests;
- X-Content-Type-Options – wyłącza MIME i wymusza użycie typu z Content-Type;
- XFO (X-Frame-Option) – określa, czy renderowanie strony powinno być w <frame>, <iframe>, <embed> czy <object>.
- X-Permitted-Cross-Domain-Policies – definiuje, czy plik zasad (crossdomain.cml) jest dozwolony;
- X-Powered-By – bywa ustawiany przez rozmaite frameworki lub środowiska hostingowe. Zawiera informacje o nich, ale często zalecane jest jego usunięcie, by uniknąć ujawnienia potencjalnych luk w zabezpieczeniach;
- X-XSS-Protection – umożliwia filtrowanie skryptów między witrynami.
Nagłówki żądań pobierania metadanych
Nagłówki żądań pobierania metadanych skupiają się na informacjach dotyczących kontekstu pochodzenia żądania. Bywają przydatne, gdy serwer podejmuje decyzję ws. tego, czy dane żądanie powinno być dozwolone.
- Sec-Fetch-Site – określa relacje między pochodzeniem obiektu docelowego i inicjatora żądania. Jest nagłówkiem strukturalnym, który może mieć wartość cross-site, same-origin, same-site lub none;
- Sec-Fetch-Mode – określa tryb żądania do serwera. To nagłówek strukturalny, więc jego wartością może być cors, navigate, no-cors, same-origin lub websocket;
- Sec-Fetch-User – określa, czy żądanie wyzwoliła aktywacja użytkownika. To nagłówek strukturalny, którego wartością może być 0 lub 1;
- Sec-Fetch-Dest – określa miejsce docelowe żądania. Jako nagłówek strukturalny może mieć wartości: audio, document, empty, image, object, report, serviceworker, style, video, xslt, audioworklet, embed, font, manifest, paintworklet, script, sharedworker, track, worker.
Oprócz wymienionych powyżej nagłówków do tej grupy zaliczane są jeszcze dwa rozwiązania. Nie są one ściśle nagłówkami żądań pobierania metadanych. Zawierają natomiast informacje dotyczące kontekstu używania danego zasobu.
- Sec-Purpose – określa cel żądania, gdy jest on czymś innym, niż natychmiastowe wykorzystanie go przez klienta użytkownika. Jego jedyną wartością jest prefetch, wskazujący na pobieranie zasobu z wyprzedzeniem. Jest to realizowane na potrzeby przyszłej nawigacji (określany jako rozwiązanie eksperymentalne);
- Service-Worker-Navigation-Preload – nagłówek wysyłany w żądaniu wywłaszczającym do zasobu fetch() podczas rozruchu roboczego usługi. Wartość nagłówka jest ustawiana przy użyciu metody NavigationPreloadManager.serHeaderValue(). Bywa wykorzystywany do informowania serwera, że powinien zwrócić inny zasób niż w normalnej operacji fetch().
Zdarzenia wysyłane przez serwer WWW
- Last-Event-ID – określa wartość ostatniego identyfikatora źródła zdarzeń;
- NEL – określa mechanizm umożliwiający deweloperom deklarowanie zasad raportowania błędów sieciowych (określany jako rozwiązanie eksperymentalne);
- Ping-From – określa adres strony internetowej, z której przyszło połączenie;
- Ping-To – wartością tego nagłówka jest adres URL, do którego prowadzi połączenie;
- Report-To – określa punkt końcowy połączenia, do którego przeglądarka powinna wysyłać raporty dotyczące ostrzeżeń i błędów.
Kodowanie transferowe
- Transfer-Encoding – pozwala na określenie formy kodowania, stosowaną do bezpiecznego przesyłania zasobu do użytkownika;
- TE – definiuje kodowanie transferu akceptowalnego przez klienta użytkownika;
- Trailer – pozwala na dołączenie przez nadawcę dodatkowych pól na końcu wiadomości fragmentarycznej.
Protokoły WebSockets
- Sec-WebSocket-Key – przedstawia 6-znakowy klucz zawierający losowe wartości ASCII z zakresu od 32 do 127. Dla każdego połączenia wygenerowany jest inny, indywidualny klucz. Zostaje on odczytany przez serwer, a właściwa odpowiedź zwracana jest do klienta;
- Sec-WebSocket-Extensions – wysyłany przez klienta, by prosić serwer o skorzystanie z określonego zestawu rozszerzeń. Może być dołączany więcej niż raz. Warunkiem jest fakt, że rozszerzenia muszą zostać wybrane z rejestru nazw rozszerzeń IANA WebDocket;
- Sec-WebSocket-Accept – dołączany do początkowej odpowiedzi serwera. Wykorzystywany tylko przy części otwierającej handshake;
- Sec-WebSocket-Protocol – jest wysyłany przez klienta, by poprosić serwer o użycie konkretnego podprotokołu. Może pojawiać się w żądaniu wielokrotnie lub zawierać różne podprotokoły rozdzielone przecinkami. Podprotokoły są pobierane z rejestru nazw podprotokołów IANA WebSocket;
- Sec-WebSocket-Version – jest wysyłany przez klienta z prośbą do serwera o użycie określonej wersji protokołu WebSocket. Jego wartością jest liczba nieujemna z zakresu od 0 do 255.
Inne nagłówki
- Accept-Push-Policy – wysłanie tego żądania świadczy o tym, że klient wyraził żądane zasady wypychania go (określany jako rozwiązanie eksperymentalne);
- Accept-Signature – użycie go wskazuje na zamiar skorzystania z dostępnych podpisów. Jednocześnie definiuje, jakie rodzaje podpisów są obsługiwane (określany jako rozwiązanie eksperymentalne);
- Alt-Syc -wyświetla listy alternatywnych sposobów na uzyskanie dostępu do określonej usługi;
- Alt-Used – identyfikuje używaną usługę alternatywną;
- Date – wskazuje dokładną datę i godzinę nadania wiadomości;
- Early-Data – wskazuje, że dane żądanie zostało przekazane we wczesnych danych protokołu TLS (określany jako rozwiązanie eksperymentalne);
- Large-Allocation – zawiera informację dla przeglądarki, że ładowana strona zamierza wykonać dużą alokację (określany jako rozwiązanie przestarzałe);
- Link – pozwala na serializację jednego lub większej liczby łączy w nagłówkach HTTP. Rozwiązanie semantycznie równoważne do elementu HTML <link>. Może być wykorzystywany do HTTP 103 Early Hints i Resource Hints (atrybutów preload, preconnect, prefetch i dns-prefetch);
- Push-Policy – strategia definiująca zachowanie serwera w przypadku wypychania zawartości podczas przetwarzania żądania (określany jako rozwiązanie eksperymentalne);
- Retry-After – określa, przez jaki czas klient użytkownika powinien zwlekać z wysłaniem żądania następczego;
- Signature -udostępnia listę podpisów dla wymiany, a każdy zawiera informacje o tym, jak określić uprawnienia i odświeżyć dany podpis (określany jako rozwiązanie eksperymentalne);
- Signed-Headers – identyfikuje uporządkowaną listę pół nagłówka odpowiedzi uwzględnianych w podpisie (określany jako rozwiązanie eksperymentalne);
- Server-Timing – komunikuje jedną lub więcej metryk i opisów dla danego cyklu żądania-odpowiedzi;
- Service-Worker-Allowed – pozwala na usuwanie ograniczeń ścieżki (ang. path restriction). Realizuje to przez dołączenie tego nagłówka do odpowiedzi skryptu Service Worker;
- SourceMap – odpowiada za łączenie wygenerowanego kodu z mapą źródłową;
- Supports-Loading-Mode – rozwiązanie ustawiane przez cel nawigacji. Wyraża zgodę na korzystanie z różnych trybów ładowania o podwyższonym ryzyku;
- Upgrade – określa reguły uaktualniania lub zmiany protokołu na inny w bieżącym połączeniu klienta, serwera oraz protokołu transportowego. Przykładem może być zmiana protokołu HTTP 1.1 na WebSocket;
- X-DNS-Prefetch-Control – odpowiada za sterowanie wstępnym pobieraniem DNS;
- X-Pingback – nagłówek wykorzystywany do zasobów z włączoną funkcją pingback. Stanowi alternatywę dla elementu skryptu XML-RPC;
- X-Requested-With (XRW) – nagłówek niestandardowy, wykorzystywany w przypadku aplikacji wykorzystujących elementy WebView. Dodają one ten nagłówek przy każdym żądaniu wysyłanym do serwerów z zawartością nazwy APK aplikacji. Odbierający serwer internetowy może wtedy zadecydować, czy i w jaki sposób wykorzysta te informacje;
- X-Robots-Tag – odpowiada za wskazywanie sposobu, w jaki dana strona internetowa ma być indeksowana w publicznych wynikach wyszukiwania. Przykładem może być tu noindex żądający, by boty internetowe unikały indeksowania danej witryny, gdy nie chce tego jej twórca. To praktyka odgrywająca znaczącą rolę przy pozycjonowaniu (SEO) serwisu.
Zobacz też: Kody odpowiedzi HTTP: Lista