Ich schreibe ein RESTful-API-Modul für eine Anwendung in PHP und bin ein bisschen gemischt mit den Verben HEAD
und OPTIONS
.
OPTIONS
Wird verwendet, um die verfügbaren HTTP-Verben für eine bestimmte Ressource abzurufen?HEAD
Wird verwendet, um festzustellen, ob eine bestimmte Ressource verfügbar ist?
Wenn jemand diese Verben klären könnte, wäre das sehr dankbar.
* Die Klarstellung bezog sich auf RESTful-API-Architekturen, die HTTP-Verben neu verwenden. Ich habe , dass beide zu der Erkenntnis , da kam HEAD
und OPTIONS
soll nicht wiederverwendet werden, und stattdessen verhalten vorhersagbar wie jede HTTP - Anwendung sollte. Oh, wie wir in 2 Jahren wachsen.
Antworten:
Gemäß: http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
quelle
CONNECT
Verb. Wäre es eine schlechte Wahl, diese Methode für die RESTful-Authentifizierung zu verwenden?CONNECT
für SSL-Tunneling verwendet. Stellen Sie sich jedoch vor, was passieren würde, wenn ein Verbraucher Ihrer Anwendung einen Proxy hätte, der so implementiert ist,CONNECT
wie er im RFC angegeben wurde. Die Anforderungen werden möglicherweise nicht an Ihre weitergeleitet Anwendung.OPTIONS
Methode gibt Informationen zur API zurück (Methoden / Inhaltstyp)HEAD
Methode gibt Informationen über die Ressource zurück (Version / Länge / Typ)Serverantwort
OPTIONEN
KOPF
Hier ist ein schöner und prägnanter Artikel darüber, wie HEAD und OPTIONS in die RESTful-Architektur passen.
quelle
OPTIONEN sagt Ihnen Dinge wie "Welche Methoden sind für diese Ressource zulässig?".
HEAD erhält den HTTP-Header, den Sie erhalten würden, wenn Sie eine GET-Anfrage stellen würden, jedoch ohne den Body. Auf diese Weise kann der Client die Caching-Informationen bestimmen, welcher Inhaltstyp zurückgegeben wird und welcher Statuscode zurückgegeben wird. Die Verfügbarkeit ist nur ein kleiner Teil davon.
quelle
OPTIONS
war das, was ich mir vorgestellt habe, und eine solche Implementierung wird mit meinem bestehenden Ansatz einfach sein. Definiert gemäß dem RFC-Zitat von sdolgyOPTIONS
keinen Standard im Format. Wird angenommen, dass das Antwortformat mit anderen Antworten identisch ist? ( zB JSON, XML usw. )