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".