Piszę moduł RESTful API dla aplikacji w PHP i jestem trochę zmieszany z czasownikami HEAD
i OPTIONS
.
OPTIONS
Służy do pobierania dostępnych czasowników HTTP dla danego zasobu?HEAD
Służy do określenia, czy dany zasób jest dostępny?
Gdyby ktoś mógł wyjaśnić * te czasowniki, byłoby to bardzo wdzięczne.
* Wyjaśnienie dotyczyło architektur RESTful API zmieniających przeznaczenie czasowników HTTP. Od tego czasu doszedłem do wniosku, że zarówno HEAD
i nieOPTIONS
powinny być ponownie używane, a zamiast tego zachowywać się przewidywalnie tak, jak każda aplikacja HTTP powinna. Och, jak dorastamy za 2 lata.
Odpowiedzi:
Jak na: http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
źródło
CONNECT
czasownik. Czy używanie tej metody do uwierzytelniania RESTful byłoby złym wyborem?CONNECT
tunelowania SSL, ale wyobraź sobie, co by się stało, gdyby konsument Twojej aplikacji miał proxy zaimplementowaneCONNECT
w sposób określony w specyfikacji RFC, żądania mogą nie zostać przekazane do Twojego podanie.OPTIONS
metoda zwraca informacje o API (metody / typ zawartości)HEAD
metoda zwraca informacje o zasobie (wersja / długość / typ)Odpowiedź serwera
OPCJE
HTTP/1.1 200 OK Allow: GET,HEAD,POST,OPTIONS,TRACE Content-Type: text/html; charset=UTF-8 Date: Wed, 08 May 2013 10:24:43 GMT Content-Length: 0
GŁOWA
HTTP/1.1 200 OK Accept-Ranges: bytes Content-Type: text/html; charset=UTF-8 Date: Wed, 08 May 2013 10:12:29 GMT ETag: "780602-4f6-4db31b2978ec0" Last-Modified: Thu, 25 Apr 2013 16:13:23 GMT Content-Length: 1270
Oto ładny i zwięzły artykuł o tym, jak HEAD i OPTIONS pasują do architektury RESTful.
źródło
OPCJE mówią rzeczy, takie jak „Jakie metody są dozwolone dla tego zasobu”.
HEAD pobiera nagłówek HTTP, który otrzymałeś, gdybyś wykonał żądanie GET, ale bez treści. Pozwala to klientowi określić informacje o pamięci podręcznej, jaki typ zawartości zostanie zwrócony, jaki kod stanu zostanie zwrócony. Dostępność to tylko niewielka część.
źródło
OPTIONS
tak sobie wyobrażałem i takie wdrożenie będzie łatwe przy moim dotychczasowym podejściu. Zgodnie z cytatem RFC sdolgy,OPTIONS
nie definiuje żadnego standardu w formacie. Czy zakłada się, że format odpowiedzi jest taki sam, jak innych odpowiedzi? ( np. JSON, XML itp. )