J'écris un module API RESTful pour une application en PHP, et je suis un peu mélangé les verbes HEAD
et OPTIONS
.
OPTIONS
Utilisé pour récupérer les verbes HTTP disponibles pour une ressource donnée?HEAD
Utilisé pour déterminer si une ressource donnée est disponible?
Si quelqu'un pouvait clarifier * ces verbes, ce serait très apprécié.
* La clarification concernait les architectures d'API RESTful redéfinissant les verbes HTTP. Depuis, je me suis rendu compte que les deux HEAD
et neOPTIONS
devraient pas être réutilisés, et se comportent plutôt de manière prévisible comme toute application HTTP le devrait. Oh, comment nous grandissons en 2 ans.
Réponses:
Selon: http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
la source
CONNECT
verbe. Serait-ce un mauvais choix d'utiliser cette méthode pour l'authentification RESTful?CONNECT
un tunnel SSL, mais imaginez ce qui se passerait si un consommateur de votre application avait un proxy implémentéCONNECT
de la manière spécifiée dans la RFC, les requêtes pourraient ne pas être transmises à votre application.OPTIONS
La méthode renvoie des informations sur l' API (méthodes / type de contenu)HEAD
La méthode renvoie des informations sur la ressource (version / longueur / type)Réponse du serveur
OPTIONS
TÊTE
Voici un article agréable et concis sur la façon dont HEAD et OPTIONS s'intègrent dans l'architecture RESTful.
la source
OPTIONS vous indique des choses telles que "Quelles méthodes sont autorisées pour cette ressource".
HEAD obtient l'en-tête HTTP que vous obtiendriez si vous faites une requête GET, mais sans le corps. Cela permet au client de déterminer les informations de mise en cache, quel type de contenu serait renvoyé, quel code d'état serait renvoyé. La disponibilité n'en est qu'une petite partie.
la source
OPTIONS
était ce que je pensais, et une telle mise en œuvre sera facile avec mon approche actuelle. Selon le devis RFC de sdolgy,OPTIONS
ne définit aucune norme dans le format. Est-il supposé que le format de réponse est le même que les autres réponses? ( par exemple; JSON, XML, etc. )