Im Allgemeinen zeigen 5xx-Antwortcodes nicht programmatische Fehler an, z. B. einen Datenbankverbindungsfehler oder einen anderen System-/Bibliotheksabhängigkeitsfehler. In vielen Fällen wird erwartet, dass der Client dieselbe Anfrage in der Zukunft erneut einreichen kann und erwartet, dass sie erfolgreich ist.
Ja, einige Web-Frameworks antworten mit 5xx-Codes, aber diese sind in der Regel das Ergebnis von Fehlern im Code und das Framework ist zu abstrakt, um zu wissen, was passiert ist, so dass es standardmäßig auf diese Art von Antwort reagiert; Dieses Beispiel bedeutet jedoch nicht, dass wir die Angewohnheit haben sollten, 5xx-Codes als Ergebnis eines programmatischen Verhaltens zurückzugeben, das nichts mit Systemen außerhalb des Prozesses zu tun hat.Es gibt viele gut definierte Antwortcodes, die besser geeignet sind als die 5xx-Codes. Da es nicht möglich ist, eine gegebene Eingabe zu analysieren/zu validieren, handelt es sich nicht um eine 5xx-Antwort, da der Code eine geeignetere Antwort enthalten kann, die den Client nicht daran hindert, dieselbe Anforderung erneut zu übermitteln, obwohl dies tatsächlich nicht möglich ist.
Um klar zu sein, wenn der vom Server festgestellte Fehler auf CLIENT-Eingabe zurückzuführen war, handelt es sich eindeutig um einen CLIENT-Fehler, der mit einem 4xx-Antwortcode behandelt werden sollte. Es wird erwartet, dass der Kunde den Fehler in seiner Anfrage korrigiert und erneut einreicht.
Es ist jedoch völlig akzeptabel, alle Prozessfehler zu erfassen und sie als 5xx-Antwort zu interpretieren. Beachten Sie jedoch, dass Sie auch weitere Informationen in die Antwort aufnehmen müssen, um genau anzugeben, was fehlgeschlagen ist. und noch besser, wenn Sie SLA-Zeiten einbeziehen können.
Ich denke nicht, dass es eine gute Übung ist zu interpretieren, "ein unerwarteter Fehler" als 5xx Fehler, weil Bugs passieren.
Es ist ein häufiger Alert-Monitor, der bei 5xx-Fehlertypen zu alarmieren beginnt, da diese normalerweise fehlgeschlagene Systeme anstelle von fehlgeschlagenem Code anzeigen. Also, Code entsprechend!
verstanden und sind damit einverstanden. Ich habe versucht herauszufinden, ob ein Unterschied gemacht werden kann, wenn der Entwickler alle Fälle behandelt oder nicht. Eigentlich macht es keinen Sinn, so zu denken. Es gibt keinen Unterschied, wenn ein Entwickler einen unerwarteten Fehler entdeckt und 500 zurückgibt oder ihn nicht abfängt - der Test ist fehlgeschlagen, und das ist das wichtige Problem, denke ich. – faboolous
Wenn Sie zwischen einer behandelten und einer nicht behandelten Serverausnahme unterscheiden möchten, können Sie das mit der Protokollierung (auf der Serverseite) oder im Anfragetext (also dem Client, in diesem Fall Ihrem Test) tun. – CodeCaster
hilfreiche Klarstellung. Kann dieser 500-Statuscode jedoch aufgrund von Formatierungsproblemen im Anfragetext vom Server zurückgegeben werden? –