Ich bin gespannt, welcher HTTP-Statuscode für eine Seite "Element existiert nicht" am besten geeignet ist.
Wenn die Seite selbst nicht vorhanden ist, verwende ich natürlich 404. Auf einer meiner Seiten befindet sich jedoch ein userid
Argument (es handelt sich um eine Seite "Benutzer bearbeiten"). Falls kein Benutzer mit der angegebenen Benutzer-ID vorhanden ist, wird ein angezeigt Fehlerseite, aber ich möchte auch einen 4xx Status Header senden (da "200 OK" nicht wirklich passt).
Ich denke, 404 wäre in Ordnung, da es "nicht gefunden" und nicht "Datei nicht gefunden" ist, aber ich frage mich, ob es für diesen Fall einen besseren Code gibt.
quelle
Ein 404-Rückkehrcode bedeutet tatsächlich "Ressource nicht gefunden" und gilt für jede Entität, für die eine Anforderung gestellt, aber nicht erfüllt wurde. Es funktioniert also genauso gut für Seiten, Unterabschnitte von Seiten und alle Elemente, die auf der Seite vorhanden sind und für die eine bestimmte Anforderung zum Rendern besteht.
404 ist also der richtige Code für dieses Szenario. Beachten Sie, dass dies nicht für "Server nicht gefunden" gilt. Dies ist eine andere Situation, in der eine Anforderung ausgegeben, aber überhaupt nicht beantwortet wurde, als beantwortet, jedoch ohne die angeforderte Ressource.
quelle
404 ist in Ordnung. HTTP / 1.1-Statuscode-Definitionen aus RFC2616
quelle
Dies hängt davon ab, ob die Benutzer-ID eine Ressourcenkennung oder ein zusätzlicher Parameter ist. Wenn dies der Fall ist, ist es in Ordnung, 404 zurückzugeben, wenn nicht, können Sie einen anderen Code wie zurückgeben
400 (bad request) ‐ indicates a bad request
oder
412 (Precondition Failed) e.g. conflict by performing conditional update
Weitere Informationen im kostenlosen InfoQ Explores: REST- Buch.
quelle