Sind alle HTTP-Methoden idempotent?
sobes.tech KI
Antwort von AI
Nein, nicht alle HTTP-Methoden sind idempotent.
Idempotenz bedeutet, dass wenn dieselbe Anfrage mit denselben Parametern mehrmals ausgeführt wird, das Ergebnis auf der Serverseite nach der ersten erfolgreichen Ausführung nicht verändert wird.
Die wichtigsten HTTP-Methoden und ihre Idempotenz:
| Methode | Ist idempotent? | Zweck |
|---|---|---|
GET |
Ja | Daten abrufen |
HEAD |
Ja | Antwortheader abrufen |
PUT |
Ja | Ressource erstellen oder vollständig ersetzen |
DELETE |
Ja | Ressource löschen |
POST |
Nein | Daten senden, um eine Ressource zu erstellen oder eine Aktion auszuführen |
PATCH |
Nein | Teilaktualisierung einer Ressource |
POST und PATCH sind nicht idempotent, weil jede Ausführung dazu führen kann, dass eine neue Ressource erstellt wird oder der Zustand der Ressource je nach Implementierung geändert wird, was nach der ersten erfolgreichen Ausführung nicht eindeutig ist. Zum Beispiel führt die wiederholte Ausführung einer POST-Anfrage zur Erstellung eines Benutzers in der Regel zur Erstellung mehrerer Benutzer.
Beispiel für eine nicht idempotente POST:
{
"username": "testuser"
}
Das Senden dieser POST-Anfrage kann bei jedem Aufruf einen neuen Benutzer mit username: "testuser" erstellen.
Beispiel für eine idempotente PUT:
{
"id": 123,
"status": "completed"
}
Das Senden dieser PUT-Anfrage an die Ressource mit der ID 123 setzt deren Status auf "completed". Eine wiederholte Ausführung ändert den Status nicht, wenn er bereits "completed" ist.