HTTP - parametry
W tym rozdziale wymienimy kilka ważnych parametrów protokołu HTTP i ich składnię oraz sposób ich wykorzystania w komunikacji. Na przykład format daty, format adresu URL itp. Pomoże to w tworzeniu komunikatów żądań i odpowiedzi podczas pisania programów klienta lub serwera HTTP. Pełne wykorzystanie tych parametrów zobaczysz w kolejnych rozdziałach, poznając strukturę wiadomości dla żądań i odpowiedzi HTTP.
Wersja HTTP
HTTP używa pliku <major>.<minor>schemat numeracji w celu wskazania wersji protokołu. Wersja wiadomości HTTP jest wskazywana przez pole HTTP-Version w pierwszym wierszu. Oto ogólna składnia określania numeru wersji HTTP:
HTTP-Version = "HTTP" "/" 1*DIGIT "." 1*DIGIT
Przykład
HTTP/1.0
or
HTTP/1.1
Jednolite identyfikatory zasobów
Jednolite identyfikatory zasobów (URI) to po prostu sformatowany ciąg znaków bez rozróżniania wielkości liter, zawierający nazwę, lokalizację itp. W celu zidentyfikowania zasobu, na przykład witryny internetowej, usługi internetowej itp. Ogólna składnia identyfikatora URI używana w przypadku protokołu HTTP jest następująca:
URI = "http:" "//" host [ ":" port ] [ abs_path [ "?" query ]]
Tutaj, jeśli port jest pusty lub nie jest podany, przyjmuje się, że port 80 jest używany jako port HTTP i jest pusty abs_path jest odpowiednikiem abs_pathz „/”. Postacie inne niż te wreserved i unsafe zestawy są równoważne ich kodowaniu ""% "HEX HEX".
Przykład
Następujące trzy identyfikatory URI są równoważne:
http://abc.com:80/~smith/home.html
http://ABC.com/%7Esmith/home.html
http://ABC.com:/%7esmith/home.html
Formaty daty / godziny
Wszystkie znaczniki daty / czasu HTTP MUSZĄ być przedstawione w czasie Greenwich (GMT), bez wyjątku. Aplikacje HTTP mogą używać dowolnej z następujących trzech reprezentacji znaczników daty / czasu:
Sun, 06 Nov 1994 08:49:37 GMT ; RFC 822, updated by RFC 1123
Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036
Sun Nov 6 08:49:37 1994 ; ANSI C's asctime() format
Zestawy znaków
Używamy zestawów znaków, aby określić preferowane przez klienta zestawy znaków. Można podać wiele zestawów znaków, oddzielając je przecinkami. Jeśli wartość nie jest określona, wartością domyślną jest US-ASCII.
Przykład
Poniżej przedstawiono prawidłowe zestawy znaków:
US-ASCII
or
ISO-8859-1
or
ISO-8859-7
Kodowanie treści
Wartość kodowania treści wskazuje, że algorytm kodowania został użyty do zakodowania treści przed przekazaniem jej przez sieć. Kodowanie treści służy przede wszystkim do kompresowania lub innego użytecznego przekształcania dokumentu bez utraty tożsamości.
We wszystkich wartościach kodowania treści wielkość liter nie jest rozróżniana. HTTP / 1.1 używa wartości kodowania treści w polach nagłówka Accept-Encoding i Content-Encoding, które zobaczymy w kolejnych rozdziałach.
Przykład
Poniżej przedstawiono prawidłowe schematy kodowania:
Accept-encoding: gzip
or
Accept-encoding: compress
or
Accept-encoding: deflate
Typy mediów
HTTP używa typów mediów internetowych w Content-Type i Acceptpola nagłówka w celu zapewnienia otwartego i rozszerzalnego wpisywania danych i negocjacji typów. Wszystkie wartości typu Media są zarejestrowane w Internet Assigned Number Authority (IANA). Ogólna składnia określająca typ mediów jest następująca:
media-type = type "/" subtype *( ";" parameter )
W nazwach atrybutów typu, podtypu i parametru nie jest rozróżniana wielkość liter.
Przykład
Accept: image/gif
Tagi językowe
HTTP używa tagów językowych w Accept-Language i Content-Languagepola. Znacznik języka składa się z jednej lub więcej części: znacznika języka podstawowego i możliwie pustej serii podtagów:
language-tag = primary-tag *( "-" subtag )
W tagu nie są dozwolone spacje, a we wszystkich tagach nie jest rozróżniana wielkość liter.
Przykład
Przykładowe tagi obejmują:
en, en-US, en-cockney, i-cherokee, x-pig-latin
gdzie dowolny dwuliterowy główny znacznik jest skrótem języka ISO-639, a dowolny dwuliterowy początkowy podtag to kod kraju w standardzie ISO-3166.