409 Conflict
Der HTTP-Statuscode 409 Conflict
Client-Fehlerantwort zeigt einen Konflikt der Anfrage mit dem aktuellen Zustand der Zielressource an.
Im WebDAV Remote-Web-Autoren sind 409-Konfliktantworten Fehler, die an den Client gesendet werden, damit ein Benutzer möglicherweise einen Konflikt lösen und die Anfrage erneut senden kann. Zum Beispiel treten Konflikte auf, wenn eine Anfrage zur Erstellung der Sammlung /a/b/c/d/
gemacht wird und /a/b/c/
nicht existiert; die Anfrage muss mit einem 409 fehlschlagen. Zusätzlich kann eine 409-Antwort auftreten, wenn eine Datei hochgeladen wird, die älter ist als die vorhandene auf dem Server, was zu einem Versionskontrollkonflikt führt.
In anderen Systemen können 409-Antworten für implementierungsspezifische Zwecke verwendet werden, wie zum Beispiel um anzuzeigen, dass der Server mehrere Anfragen zum Aktualisieren derselben Ressource erhalten hat.
Status
409 Conflict
Beispiele
Gleichzeitige Aufgaben nicht erlaubt
Im folgenden Beispiel möchten wir einen Automatisierungsprozess starten, der eine gemeinsame Aufgabe im System ausführt:
POST /tasks HTTP/1.1
Host: example.com
Content-Type: application/json
{
"task": "emailDogOwners",
"template": "pickup"
}
In dieser Implementierung erlaubt der Server nicht, dass zwei gleichzeitige Jobs ausgeführt werden, und gibt einen 409 zurück, wodurch der Client die Gelegenheit erhält zu prüfen, ob er die Aktion ausführen oder eine andere Aufgabe laufen lassen wollte:
HTTP/1.1 409 Conflict
Date: Wed, 26 Jun 2024 12:00:00 GMT
Server: Apache/2.4.1 (Unix)
Content-Type: application/json
{
"code": "AutomationConflict",
"task": "emailDogOwners",
"message": "Task locked. Cannot start a new automation since job is already running.",
"runningTaskId": "123"
}
Spezifikationen
Specification |
---|
HTTP Semantics # status.409 |