Metody HTTP

Metody HTTP

W zapytaniu HTTP metoda to umowna nazwa akcji, która powinna zostać wykonana po stronie odbiorcy. Metody HTTP pokrywają zdecydowaną większość przypadków wykonywania wszelkich akcji na zasobach. Ponieważ akcje te mogą być różnie zaimplementowane po stronie serwera, omówimy tutaj założenia przyjęte wobec tych metod, których programista powinien się trzymać podczas implementacji zachowań serwera.

Aby wprowadzić pewne zasady odnośnie użycia metod, standard HTTP ze względu na cechy metod definiuje 2 grupy: metody bezpieczne i metody idempotentne. Przedstawione poniżej cechy obu grup to jedynie zalecenia, ponieważ protokół w żaden sposób nie może zagwarantować, że implementacja metod po stronie serwera spełnia te warunki.

Metody bezpieczne (GET, HEAD)

Są to metody, które nie powinny modyfikować danych, ani mieć żadnych skutków ubocznych.

W rzeczywistości trudno jest zagwarantować, że nawet metoda GET (pobierająca dane) nie będzie modyfikowała absolutnie żadnych danych. Dość częstym wymaganiem jest audyt akcji, który powoduje zapis informacji o każdej operacji wykonywanej na danych, nawet o odczycie. Wskutek tego akcja GET zapisze pewne dane, ale nie będą to główne dane systemu.

Metody idempotentne (GET, HEAD, PUT, DELETE, OPTIONS, TRACE)

Są to metody, które wywołane wiele razy w tych samych warunkach początkowych zawsze będą miały ten sam rezultat.

Poniżej lista wszystkich podstawowych metod HTTP

OPTIONS sprawdzenie udostępnionych metod
GET pobieranie danych
HEAD pobieranie metadanych na temat zapytania
POST wysyłanie danych
PUT dodanie zasobu
DELETE skasowanie zasobu
TRACE używane przy testowaniu połączenia
CONNECT stworzenie tunelu poprzez serwery proxy

Dobrą praktyką jest implementacja metod zgodna z powyższymi wymaganiami mimo że, protokół HTTP nie może w żaden sposób wymóc ich spełnienia.