Sobes.tech
Middle

Parlez des méthodes HTTP et de leur idempotence.

sobes.tech IA

Réponse de l'IA

Les méthodes HTTP déterminent l’action que le client souhaite effectuer sur une ressource. Les méthodes principales :

  • GET : Obtenir une ressource. Est idempotent (les requêtes répétées ne changent pas l’état sur le serveur).
  • POST : Envoyer des données pour traitement (par exemple, créer une nouvelle ressource, envoyer des données de formulaire). Normalement, n’est pas idempotent.
  • PUT : Créer ou mettre à jour une ressource à l’URI spécifiée. Est idempotent (une requête répétée avec les mêmes données mènera au même état de la ressource).
  • DELETE : Supprimer une ressource à l’URI spécifiée. Est idempotent (après la première requête réussie, les requêtes répétées ne changeront pas l’état de la ressource, car elle a déjà été supprimée).
  • PATCH : Modifier partiellement une ressource. Normalement, n’est pas idempotent, car l’ordre des opérations peut avoir de l’importance.
  • HEAD : Obtenir les en-têtes de réponse de GET sans le corps de la réponse. Est idempotent.
  • OPTIONS : Obtenir la liste des méthodes supportées pour une ressource. Est idempotent.

L’idempotence signifie que l’exécution multiple d’une même requête conduira au même état final du système que l’exécution unique. Cela ne concerne que les effets secondaires sur le serveur. Les réponses du serveur peuvent différer (par exemple, la première requête DELETE peut retourner 200 OK, et les suivantes — 404 Not Found).

Exemples d’opérations non idempotentes :

  • Ajouter plusieurs fois un produit au panier avec POST.
  • Augmenter un compteur avec POST ou PATCH.

Exemples d’opérations idempotentes :

  • Obtenir plusieurs fois des données avec GET.
  • Créer ou mettre à jour un utilisateur avec un ID spécifique avec PUT.
  • Supprimer un utilisateur avec un ID spécifique avec DELETE.

L’idempotence est importante lorsque la requête doit être renvoyée plusieurs fois (par exemple, en cas de défaillance réseau). Le serveur peut exécuter en toute sécurité une requête idempotente plusieurs fois sans provoquer de changements indésirables.