Sobes.tech
Middle

Tous les méthodes HTTP sont-elles idempotentes?

sobes.tech IA

Réponse de l'IA

Non, tous les méthodes HTTP ne sont pas idempotentes.

L'idempotence signifie que si vous effectuez la même requête plusieurs fois avec les mêmes paramètres, le résultat côté serveur ne changera pas après la première exécution réussie.

Les principales méthodes HTTP et leur idempotence :

Méthode Idempotente Objectif
GET Oui Récupérer des données
HEAD Oui Récupérer les en-têtes de réponse
PUT Oui Créer ou remplacer complètement une ressource
DELETE Oui Supprimer une ressource
POST Non Envoyer des données pour créer une ressource ou effectuer une action
PATCH Non Mise à jour partielle d'une ressource

POST et PATCH ne sont pas idempotents car chaque exécution peut entraîner la création d'une nouvelle ressource ou modifier l'état de la ressource selon l'implémentation, ce qui n'est pas unique après la première exécution réussie. Par exemple, exécuter plusieurs fois une requête POST pour créer un utilisateur entraînera généralement la création de plusieurs utilisateurs.

Exemple de POST non idempotent :

{
  "username": "testuser"
}

Envoyer cette requête POST peut créer un nouvel utilisateur avec username: "testuser" à chaque appel.

Exemple de PUT idempotent :

{
  "id": 123,
  "status": "completed"
}

Envoyer cette requête PUT au ressource avec ID 123 définira son statut à "completed". La répétition n'altérera pas le statut s'il est déjà "completed".