Metoda OPTIONS

Metoda OPTIONS

To prośba o przesłanie informacji na temat dostępnych metod komunikacji dla danego zasobu. Możliwe jest także zapytanie o dostępne opcje samego serwera, jeżeli adres docelowy jest ustawiony na (*). Jednak z uwagi na to, że dostępne funkcjonalności są ściśle związane z zasobem, pytanie o możliwości serwera jest używane głównie jako ping (sprawdzenie dostępności) do serwera.

W przypadku zapytania o dostępne opcje danego zasobu, otrzymujemy listę dostępnych metod, które możemy wywołać na tym zasobie.

Request Response
OPTIONS /users/12
Host: example.com
HTTP/1.1 200 OK
Allow: HEAD,GET,PUT,DELETE,OPTIONS
Content-Length: 0

Nagłówek Allow w odpowiedzi jest wymagany. Treść dodatkowych nagłówków lub samej wiadomości nie jest określona w specyfikacji HTTP i może zawierać dowolnie więcej informacji.

Obecnie wiele serwerów nie implementuje tej metody. Jest ona jednak nadal wykorzystywana do mechanizmu Preflighted requests, który będzie opisany w kolejnych częściach.

Według najnowszych standardów nie jest zalecane używanie metody OPTIONS ze względów bezpieczeństwa. Pozwala ona na poznanie metod, które można wykonać na zasobie, a tym samym pomaga rozpoznać środowisko ataku potencjalnemu intruzowi.

Zamiast tego do zapytań o możliwości danego zasobu polecane jest użycie nagłówka Link. Pozwala on zdefiniować m.in. jaki zasób opisuje request, który nas interesuje. Szerzej na ten temat w temacie Link header.

Link: </resource.md>; rel="describedby"

https://www.mnot.net/blog/2012/10/29/NO_OPTIONS