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.