tom000 - Personal Website - Strona główna
decor1 Serwer HTTP decor2

Założenia podstawowe

Adres zasobu

    Każde otrzymane zapytanie od klienta w pierwszej linii zawiera nazwę metody, identyfikator zasobu oraz informację o wersji protokołu. Identyfikatorem zasobu może być adres absolutny do zasobu (np. http://domena.pl/katalog/strona.html), ścieżka do zasobu (np. /katalog/strona.html), lub „*” oznaczająca, że zapytanie nie odnosi się do żadnego konkretnego zasobu (dla metody OPTIONS). Najczęściej w zapytaniach można spotkać ścieżkę do zasobu. Dotyczy ona tylko serwera, do którego nastąpiło połączenie. W przypadku serwera HTTP działającego jako serwer proxy wykorzystywane są adresy absolutne. Należy tutaj pamiętać, że w adresie absolutnym może znaleźć się numer portu, a adres hosta może być podany jako domena internetowa lub adres IP. W nazwie hosta wielkie i małe litery traktowane są jednakowo, w przeciwieństwie już do samej ścieżki zasobu, gdzie wielkość liter ma znaczenie ([13], str.24).

    W adresie do zasobu mogą być stosowane symbole heksadecymalne poprzedzone znakiem „%” (np. „%7E” zamiast „~”), które należy przekodować lub odpowiednio zinterpretować przy przetwarzaniu tego adresu.

    Nie istnieją żadne ograniczenia co do liczby znaków w identyfikatorze zasobu. W przypadku, gdy serwer nie może sobie poradzić z obsługą zbyt długiego identyfikatora powinien zwrócić status 414 informujący o zbyt długim adresie ([13], str.14).

Format daty

    Aplikacje komunikujące się z serwerem HTTP mogą wykorzystywać 3 różne formaty daty:

  • ANSI C asctime(), np.: Sun Nov 6 08:49:37 1994

  • RFC850, np.: Sunday, 06-Nov-94 08:49:37 GMT

  • RFC1123, np.: Sun, 06 Nov 1994 08:49:37 GMT

    Serwer musi akceptować te wszystkie 3 formaty, ale wysyłać do klienta może tylko w formacie RFC1123. Daty bez wyjątku muszą być reprezentowane w uniwersalnym czasie Greenwich (GMT) ([13] str.15).

Kodowanie

    W przypadku kodowania znaków wiadomości, należy rozróżnić 2 elementy – kodowanie nagłówków i kodowanie przesyłanego zasobu. Nagłówki mogą składać się tylko ze znaków znajdujących się w kodowaniu US-ASCII (oktety od 0 do 127) ([13], str.12). Sposób kodowania znaków przesyłanego zasobu określony jest w nagłówku wiadomości w „Content-Type” wraz z typem MIME zasobu. Jeżeli taka informacja nie znalazła się w nagłówku „Content-Type” przyjmowane jest kodowanie zasobu jako ISO-8859-1 ([13], str.16).

    Przesyłany zasób może zostać skompresowany w celu obniżenia ilości przesyłanych danych. Informacja o kompresji zasobu znajduje się w nagłówku „Content-Encoding”. W przypadku braku tego nagłówka nie jest zastosowana żadna kompresja na przesyłanym zasobie. Specyfikacja HTTP/1.1 definiuje dla tego nagłówka wartości: „gzip” (kompresja programem gzip), „compress” (kompresja programem compress), „deflate” (kompresja do formatu zlib opisanego w RFC1951) ([13], str.16).

← Wymagania funkcjonalne Serwer HTTP Połączenia trwałe →
Copyleft (C) tom000.info 2004-2012. Some rights reserved.