Aller au contenu principal

4.5. Utilisation des méthodes HTTP

4.5. Utilisation des méthodes HTTP

Les applications qui utilisent HTTP DOIVENT se conformer à la sémantique des méthodes qu'elles utilisent, telle que définie dans [HTTP]. Elles PEUVENT définir de nouvelles méthodes, mais si elles le font, elles DOIVENT les enregistrer en suivant la procédure de [HTTP] Section 16.1.

Les nouvelles méthodes sont rares; elles ne sont nécessaires que lorsque la sémantique d'aucune méthode existante ne permet ce qui est nécessaire. Habituellement, il suffit de définir un nouveau Content-Type pour les corps de requête et/ou une relation Link dans les réponses pour désambiguïser la sémantique.

Par exemple, si une application veut définir une opération pour "relocaliser" une ressource, il serait inapproprié de définir une nouvelle méthode RELOCATE car PUT peut déjà être utilisé pour changer l'état d'une ressource (en fournissant une nouvelle représentation contenant l'emplacement mis à jour).

Lors de la spécification de l'utilisation des méthodes, il est important de considérer les diverses propriétés qu'elles ont, telles que la sécurité, l'idempotence et la capacité de mise en cache.

Les applications DEVRAIENT utiliser les méthodes HTTP existantes lorsque cela est possible. En particulier:

  • GET DEVRAIT être utilisé pour les opérations qui sont sûres et mises en cache (selon [HTTP] Sections 9.2.1 et 15.4).

  • HEAD DEVRAIT être pris en charge partout où GET l'est.

  • POST DEVRAIT être utilisé pour les opérations qui ne sont ni sûres ni idempotentes.

  • PUT DEVRAIT être utilisé pour les opérations qui stockent la représentation jointe sous l'URL fournie, en remplaçant toute représentation existante.

  • DELETE DEVRAIT être utilisé pour les opérations qui suppriment la ressource identifiée par l'URL.

Voir Section 4.5.1 et Section 4.5.2 pour des considérations supplémentaires lors de l'utilisation de GET et OPTIONS.