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.