Lista nagłówków HTTP
Lista nagłówków HTTP – zbiór parametrów wykorzystywanych w komunikacji między klientem a serwerem HTTP.
Standardowe
[edytuj | edytuj kod]Accept
[edytuj | edytuj kod]Accept: application/xhtml+xml, application/xml;q=0.9, text/xml;q=0.7, text/html;q=0.5, text/plain;q=0.3
Służy do określenia listy akceptowalnych przez przeglądarkę typów MIME dokumentu oraz opcjonalnie hierarchii każdego typu. Liczby podane po ;q= powinny mieć wartości od 0 do 1, co 0.1. Jako separator miejsc dziesiętnych użyta musi być kropka. W przypadku braku zdefiniowanej wartości ;q= przyjmowana jest wartość: ;q=1 (równoznaczna z ;q=1.0).
Powyższy przykład ustala najwyższy priorytet typowi application/xhtml+xml. Jeżeli serwer nie posiada dokumentu w formacie application/xhtml+xml, to prześle plik w formacie application/xml – ogólnym dla podjęzyków XML, takich jak XHTML, SVG. Jeżeli na serwerze nie ma również dokumentu w tym formacie, dane zostaną przesłane jako text/xml – czyli ogólne dane w formacie XML, w ostateczności, jeżeli żadnego z tych typów nie posiada, serwer wyśle dane w formacie text/plain, czyli zwykłego tekstu.
Typy MIME mogą być określone za pomocą symboli wieloznacznych np.: text/*, */*.
Accept-Charset
[edytuj | edytuj kod]Accept-Charset: utf-8, iso-8859-13;q=0.8
Określa preferowane przez przeglądarkę formaty kodowania. Wartości ;q= interpretowane są na takich samych zasadach, jak w przypadku typów MIME z nagłówka Accept.
Accept-Encoding
[edytuj | edytuj kod]Accept-Encoding: gzip;q=1.0, identity; q=0.5, *;q=0
Ten nagłówek określa kodowanie, za pomocą którego zostanie przesłana zawartość. Stosowane zwykle do kompresji treści.
Accept-Language
[edytuj | edytuj kod]Accept-Language: pl, en-us;q=0.7
Określa, w jakim języku użytkownik przeglądarki życzy sobie czytać strony. Zobacz też: Language negotiation
Accept-Ranges
[edytuj | edytuj kod]Accept-Ranges: bytes lub none
Ten nagłówek jest ustawiany przez przeglądarki i programy ułatwiające ściąganie plików. Określa, czy klient potrafi (wartość bytes) lub nie (wartość none) odczytywać pliki przesyłane w częściach.
Zobacz też: Content-Range i Range
Allow
[edytuj | edytuj kod]Allow: GET, POST, HEAD
Określa metody HTTP obsługiwane przez serwer.
Authorization
[edytuj | edytuj kod]Cache-Control
[edytuj | edytuj kod]Cache-Control: no-cache
Określa regułę, według której przeglądarka może (lub nie może) przechowywać stronę w pamięci podręcznej.
Dostępne wartości to:
- no-store – strona nie może być przechowywana.
- no-cache – strona może być przechowywana pod warunkiem każdorazowego sprawdzania jej aktualności.
Te dwa nagłówki mają szczególne znaczenie dla serwerów proxy. Pierwszy nakazuje przesyłać dokument bezwzględnie, natomiast drugi pozwala na skorzystanie z kopii w pamięci podręcznej, jeżeli dokument źródłowy się nie zmienił.
- max-age=liczba_sekund – oznacza, że można skorzystać z cache pod warunkiem, iż nie jest przechowywane dłużej jak liczba_sekund. Jeżeli jest starsze, przeglądarka powinna ściągnąć nowszą wersję.
- min-fresh=liczba_sekund – nakazuje przeglądarce ściągnąć dokument, jeżeli jego wiek nie przekracza liczby_sekund + aktualna_data
Connection
[edytuj | edytuj kod]Connection: close
Połączenie zostanie zamknięte po obsłużeniu zapytania.
Connection: keep-alive
Połączenie będzie utrzymywane w oczekiwaniu na kolejne zapytania. Czas oczekiwania nie może przekroczyć wartości określonej w nagłówku wysłanym przez serwer.
Content-Encoding
[edytuj | edytuj kod]Content-Encoding: gzip
Kodowanie dokumentu przesłanego przez serwer. Stosowane zwykle do kompresji treści.
Content-Language
[edytuj | edytuj kod]Content-Language: en, pl
Język dokumentu przesłanego przez serwer. Może być określony więcej niż jeden język. Wtedy język główny strony jest określony jako ostatni na tej liście.
Content-Length
[edytuj | edytuj kod]Content-Length: 1
Długość w bajtach przesyłanej zawartości (wyłączając część nagłówkową). Nagłówek obowiązkowy dla danych wysyłanych z serwera oraz przy korzystaniu z metody POST.
Content-Location
[edytuj | edytuj kod]Content-Range
[edytuj | edytuj kod]Content-Range: bytes 123-456/5000
Informacja serwera, jaki zakres pliku został przesłany (stosowany razem z kodem odpowiedzi 206).
Zakres jest podawany w formacie: pozycja_początkowa-pozycja_końcowa/wielkość_pliku (wszystkie wartości w bajtach)
Content-Type
[edytuj | edytuj kod]Content-Type: application/xhtml+xml; charset=utf-8
Tym nagłówkiem serwer informuje przeglądarkę, w jakim formacie i stronie kodowej wysyłany jest dokument.
Date
[edytuj | edytuj kod]Date: Tue, 15 Nov 1994 08:12:31 GMT
Data na serwerze.
Expires
[edytuj | edytuj kod]Expires: Thu, 01 Dec 1994 16:00:00 GMT
Data, powyżej której dokument będzie nieaktualny.
Host
[edytuj | edytuj kod]Host: www.w3.org
Nagłówek określający, dla jakiej domeny określony został URI (do serwera bowiem nie dociera nazwa domenowa, ale jedynie adres IP). Nagłówek wymagany w HTTP 1.1. Dzięki niemu można uruchomić kilka serwerów wirtualnych na jednym adresie IP.
If-Match
[edytuj | edytuj kod]If-Modified-Since
[edytuj | edytuj kod]If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT
Nagłówek nakazuje serwerowi przesłać dokument tylko, jeżeli został zmodyfikowany od danej daty. Jeżeli dokument się nie zmienił, serwer powinien wysłać przeglądarce kod odpowiedzi 304.
Last-Modified
[edytuj | edytuj kod]Last-Modified: Tue, 15 Nov 1994 12:45:26 GMT
Nagłówek serwera informujący o ostatniej aktualizacji dokumentu.
Location
[edytuj | edytuj kod]Location: http://serwer/
Wymusza przekierowanie na określony adres. Dla kodu odpowiedzi 201 adres oznacza miejsce nowo utworzonego zasobu. Dla kodów 3xx podany adres oznacza przekierowanie stałe. Od tej pory przeglądarka powinna korzystać z nowego adresu.
Pragma
[edytuj | edytuj kod]Proxy-Authenticate
[edytuj | edytuj kod]Proxy-Authorization
[edytuj | edytuj kod]Range
[edytuj | edytuj kod]Range: bytes=500-999
Określa, jaką część pliku oczekuje przeglądarka. Podawany w formacie bytes=pozycja_początkowa-pozycja_końcowa
Referer[1]: http://serwer/katalog/plik.html
Podaje adres strony, z której nastąpiło przekierowanie. Pojawia się, gdy użytkownik kliknie na link lub gdy przeglądarka ładuje elementy zagnieżdżone. Jeżeli użytkownik wpisał adres ręcznie, ten nagłówek nie występuje.
Retry-After
[edytuj | edytuj kod]Retry-After: Fri, 31 Dec 1999 23:59:59 GMT
Używany razem z kodem odpowiedzi 503 (Serwer zajęty). Określa czas, po którym serwer będzie w stanie odpowiedzieć. Czas może być podany w formie konkretnej daty (jak w przykładzie) lub liczby sekund.
Server
[edytuj | edytuj kod]Server: Apache/2.0.50
Nagłówek identyfikujący serwer i użyte w nim oprogramowanie.
Transfer-Encoding
[edytuj | edytuj kod]Transfer-Encoding: chunked
Określa, w jaki sposób serwer przesłał zawartość dokumentu.
Dostępne metody to:
- chunked
- Oznacza przesyłanie zawartości kawałkami. Każdy z nich powinien mieć postać:
- wielkość
- treść
- 1a
- abcdefghijklmnopqrstuvwxyz
- 10
- 1234567890abcdef
- 0
- identity
- Oznacza tekst nieskompresowany
- gzip
- Oznacza dane skompresowane algorytmem DEFLATE
- compress
- Dane skompresowane algorytmem LZW
User-Agent
[edytuj | edytuj kod]User-Agent: Mozilla/5.0 (X11; U; Linux i686; pl; rv:1.8.0.1) Gecko/20060124 Firefox/1.5.0.1
Identyfikuje klienta czyli przeglądarkę lub aplikację wysyłającą żądanie.
WWW-Authenticate
[edytuj | edytuj kod]WWW-Authenticate: rodzaj_uwierzytelnienia
Przesyłany razem z kodem 401. Określa sposób, w jaki ma zostać przeprowadzone uwierzytelnienie użytkownika.
Niestandardowe
[edytuj | edytuj kod]Nagłówki podane poniżej nie znajdują się w specyfikacji HTTP 1.1, lecz są często używane.
Cookie
[edytuj | edytuj kod]Cookie: ciastko1=wartosc1; ciastko2=wartosc2
W tym nagłówku przesyłane są wszystkie ciasteczka ustawione w przeglądarce.
Set-Cookie
[edytuj | edytuj kod]Set-Cookie: ciastko1=wartosc1; ciastko2=wartosc2
Nagłówek wysłany od serwera nakazuje przeglądarce ustawienie określonych ciasteczek.
Refresh
[edytuj | edytuj kod]Refresh: czas; url=adres
Ustawia automatyczne przekierowanie w przeglądarce na podany adres po określonym czasie
X-Frame-Options
[edytuj | edytuj kod]X-Frame-Options: deny
Ogranicza zagnieżdżania strony w ramkach w celu ochrony przed atakami clickjackingiem[1].
Dostępne wartości to:
- deny
- zabrania osadzania strony w ramce
- sameorigin
- pozwala na osadzenie strony tylko w obrębie tej samej domeny
- allow-from https://example.com/
- umożliwia na ładowanie strony w ramce wyłącznie na wskazanych domenach (w tym wypadku jest to „example.com”
Strict-Transport-Security
[edytuj | edytuj kod]Strict-Transport-Security: max-age=31536000[; includeSubDomains]
Wymusza użycie bezpiecznego połączenia HTTPS podczas każdej następnej wizyty na odwiedzanej stronie do momentu upływu czasu max-age w sekundach od ostatniego skutecznego wczytania danej strony zawierającej ten nagłówek, jednak nie wcześniej niż do końca najdłuższego okresu spośród napotkanych. Używany w celu zapobiegania atakom man in the middle oraz SSL strip. Opcjonalnie może obejmować poddomeny, przy ustawionym parametrze includeSubDomains. Dodatkowo przeglądarka użytkownika nie ma prawa zaproponować zignorowania lub ominięcia błędu, który powstanie w razie braku lub niezgodności certyfikatu serwera.
Zobacz też
[edytuj | edytuj kod]Przypisy
[edytuj | edytuj kod]- ↑ a b Piotr Konieczny: Clickjacking i Framebusting (czyli ochrona przed clickjackingiem). 2010-06-03. [dostęp 2013-06-30]. (pol.).
Linki zewnętrzne
[edytuj | edytuj kod]- Pełna lista nagłówków (ang.)
- Podstawy protokołu HTTP (pol.)
- RFC 2616 - standard (ang.)