nach iana.org:
4xx: Client Error - The request contains bad syntax or cannot be fulfilled
5xx: Server Error - The server failed to fulfill an apparently valid request
Ich denke, keiner des 4xx Statuscode sollte als Antwort auf einen internen Serverfehler oder Migration oder ... gültig, wenn Kunde keine Verantwortung hat oder wo Benutzer Eingaben werden voraussichtlich erneut überprüft. es sei denn, die vorgefüllten Daten des Benutzers sind involviert, wie das Paket des Benutzers es ihm nach einem vorher festgelegten und bekannten Datum nicht erlaubt, auf diese Daten zuzugreifen. In diesem speziellen Fall kann es ein 403 Forbidden sein, wie @Bari vorgeschlagen hat.
Ich bin kein Experte, aber ich denke, wenn die Ablehnung oder die Entscheidung, Endpunktdaten als beschädigt oder ungültig zu betrachten, vom Server gemacht wird, dann hängt es davon ab, was als nächstes getan werden soll. Ich sehe mögliche Fälle:
1. Es wird erwartet, dass dies irgendwie fixiert werden soll und Client sollte aufgefordert werden, zurück zu verlangen, sondern zu einem späteren Zeitpunkt ==>503 (Service Unavailable):
503 (Service Unavailable)
status code indicates that the server
is currently unable to handle the request due to a temporary overload
or scheduled maintenance, which will likely be alleviated after some
delay. The server MAY send a Retry-After header field
(Section 7.1.3) to suggest an appropriate amount of time for the
client to wait before retrying the request.
2. Etwas ist falsch, es ist nicht die Verantwortung Client, aber es gibt eine alternative Möglichkeit, auf Daten zuzugreifen, vielleicht einen bestimmten Prozess folgenden oder weitere Details zu senden ==>510 Not Extended
2. Der Server kann die Anforderung nicht erfüllen, aber es gibt einen alternativen Weg, der weitere Details erfordert. Beispiel: Wenn die angeforderten Daten beschädigt sind, kann die Serverfehlerantwort eine Liste älterer (oder nicht gespeicherter, unversionierter) Versionen enthalten und erwarten, dass der Client genauer angibt, welche Version ausgewählt werden soll, damit er abgerufen werden kann beschädigte ein ==>510 Not Extended
510 Not Extended
The policy for accessing the resource has not been met in the
request. The server should send back all the information necessary
for the client to issue an extended request. It is outside the scope
of this specification to specify how the extensions inform the
client.
If the 510 response contains information about extensions that were
not present in the initial request then the client MAY repeat the
request if it has reason to believe it can fulfill the extension
policy by modifying the request according to the information provided
in the 510 response. Otherwise the client MAY present any entity
included in the 510 response to the user, since that entity may
include relevant diagnostic information.
- Fall wurde aktualisiert, ein Beispiel enthalten, wie IMHO es in einem solchen Fall passen.aber auch hier bin ich nicht jeder Fachmann und ich kann falsch darüber
3.en keine alternativen Möglichkeiten, nichts zu erwarten oder keiner der anderen Fälle ==>500 sollte gut sein
500 (Internal Server Error)
status code indicates that the server
encountered an unexpected condition that prevented it from fulfilling
the request.
IMO, würde 500 am besten passen. Aber wenn Sie auf die Spezifikation schauen, werden Sie nichts finden, was eindeutig mit korrupter/ungültiger Ressource in Verbindung gebracht würde, wie Sie es beschreiben. 5xx ist serverseitiger Fehler, ohne zu unterscheiden, was tatsächlich schiefgelaufen ist ... –
Interessante Frage ... –
Bitte klarstellen * verstößt gegen einige Geschäftsregeln *. –