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

Metoda GET

    Metoda GET pozwala na przesłanie wybranego zasobu do klienta. Jest to najczęściej wykorzystywana metoda serwera HTTP. Zapytania GET klienta nie zawierają żadnych danych poza zestawem nagłówków. W ciele odpowiedzi klient otrzymuje zasób do którego zostało wysłane zapytanie.

    Jedną z odmian tej metody jest tzw. „warunkowy GET” (conditional GET). W jego nagłówkach musi znajdować się jeden z:

  • If-Modified-Since”,

  • If-Unmodified-Since”,

  • If-Match”,

  • If-None-Match”,

  • If-Range” ([13], str.35).

    Nagłówek „If-Modified-Since” jako parametr przyjmuje datę (zazwyczaj ostatniego zapytania klienta do danego zasobu). Jeżeli serwer wykryje, że zasób nie uległ modyfikacji od tego czasu, zwraca zamiast zasobu, status 304 o braku modyfikacji. W przypadku nagłówka „If-Unmodified-Since” metoda zostanie wykonana poprawnie, gdy zasób nie został zmodyfikowany. Jeżeli od podanej daty uległ on zmianie zwracany jest do klienta status 412.

    Dla nagłówków „If-Match”, „If-None-Match” parametrem jest tag identyfikujący zasób, lub ich zestaw. Tag zasobu przesyłany jest do klienta za pomocą nagłówka „ETag”. Następnie klient może ponownie wykorzystać ten tag tworząc zapytanie warunkowe z wykorzystaniem nagłówków „If-Match” i „If-None-Match”. Dla zapytania z nagłówkiem „If-Match” serwer porównuje przesłane tagi z tagiem wybranego zasobu na serwerze i jeżeli zawartość nagłówka nie pasuje do tagu zasobu, metoda jest przerywana i zwracany jest status 412. Jeżeli metoda GET zwróci inną wartość niż status 2xx, lub 412 nagłówek „If-Match” powinien zostać zignorowany. Dla nagłówka „If-None-Match” po sprawdzeniu tagów i znalezieniu pasującego trafienia serwer powinien zwrócić status 304 Not Modified. W przeciwnym wypadku zapytanie powinno być przetwarzane, tak jakby nie został dołączony nagłówek „If-None-Match”. Nagłówki „If-Match” i „If-None-Match” jako wartość mogą przyjąć znak „*”, który pasuje do każdego tagu zasobu. W przypadku listy tagów, tagi są oddzielane przecinkami.

    Inną odmianą metody GET jest „częściowy GET” (partial GET). Taka odmiana metody GET zawiera nagłówek „Range” i polega na zwracaniu określonego w nagłówku zakresu, lub zakresów danych żądanego zasobu. Dzięki temu możliwe jest m.in. pobieranie dużych plików w częściach, czy wznawianie pobierania w dowolnym momencie w przypadku problemów z połączeniem. Wartość takiego nagłówka poprzedzona jest ciągiem „bytes=”, po którym podawane są przedziały bajtów, które mają być zwrócone w odpowiedzi. W nagłówku można podać wiele zakresów dla zasobu oddzielonych przecinkami. Każdy zakres składa się z dwóch wartości oddzielonych myślnikiem (np. 500-600, oznaczających pobranie 101 bajtów), lub z myślnika i wartości końcowej (np. -500, oznaczającego pobranie ostatnich 500 bajtów), lub z wartości początkowej i myślnika (np. 500-, oznaczającego pobranie zakresu od 500. bajtu do ostatniego). W przypadku listy zakresów wartość nagłówka może wyglądać następująco: „bytes=0-0,-1” (oznacza pobranie pierwszego i ostatniego bajta). Zakresy zasobu zwracane są w jednej odpowiedzi oznaczonej statusem 206 Partial Content. Każdy zakres znajdujący się w ciele odpowiedzi poprzedzony jest własnym nagłówkiem wraz z typem MIME i jego długością, oraz ogólnym separatorem, zdefiniowanym w nagłówku odpowiedzi.

 

← Metody Serwer HTTP Metoda HEAD →
Copyleft (C) tom000.info 2004-2012. Some rights reserved.