Zijn alle HTTP-methoden idempotent?
sobes.tech AI
Antwoord van AI
Nee, niet alle HTTP-methoden zijn idempotent.
Idempotentie betekent dat als je dezelfde aanvraag meerdere keren met dezelfde parameters uitvoert, het resultaat aan de serverzijde niet zal veranderen na de eerste succesvolle uitvoering.
De belangrijkste HTTP-methoden en hun idempotentie:
| Methode | Is het idempotent? | Doel |
|---|---|---|
GET |
Ja | Gegevens ophalen |
HEAD |
Ja | Headers van de reactie ophalen |
PUT |
Ja | Een bron creëren of volledig vervangen |
DELETE |
Ja | Een bron verwijderen |
POST |
Nee | Gegevens verzenden om een bron te maken of actie uit te voeren |
PATCH |
Nee | Gedeeltelijke update van een bron |
POST en PATCH zijn niet idempotent omdat elke uitvoering kan leiden tot het creëren van een nieuwe bron of het wijzigen van de status van de bron afhankelijk van de implementatie, wat niet uniek is na de eerste succesvolle uitvoering. Bijvoorbeeld, meerdere keren een POST-verzoek uitvoeren om een gebruiker te maken, zal meestal leiden tot het maken van meerdere gebruikers.
Voorbeeld van een niet-idempotent POST:
{
"username": "testuser"
}
Het verzenden van dit POST-verzoek kan bij elke oproep een nieuwe gebruiker met username: "testuser" creëren.
Voorbeeld van een idempotent PUT:
{
"id": 123,
"status": "completed"
}
Het verzenden van dit PUT-verzoek naar de bron met ID 123 zal de status instellen op "completed". Herhaald verzenden zal de status niet veranderen als deze al "completed" is.