Bedeutung des HTTP-Fehlercodes 400 BAD request?

Ich habe eine JSON-Anfrage, die ich an eine HTTP-URL senden.

Sollte dies als "400" behandelt werden, wenn das Feld "RequestedResource" vorhanden ist, aber "Roman" ein ungültiger Wert für dieses Feld ist?

[{requestedResource:"Roman"}] 

Soll dies als 400 behandelt werden, wenn das Feld "blah" überhaupt nicht existiert?

[{blah:"Roman"}]

Eine 400 bedeutet, dass die Anfrage fehlerhaft formuliert wurde. Mit anderen Worten, der vom Client an den Server gesendete Datenstrom entsprach nicht den Regeln.

Im Falle einer REST-API mit einer JSON-Nutzlast werden 400' s in der Regel, und richtig würde ich sagen, verwendet, um anzuzeigen, dass die JSON in irgendeiner Weise ungültig ist nach der API-Spezifikation für den Dienst.

Nach dieser Logik sollten beide Szenarien, die Sie angegeben haben, 400' s sein.

Stellen Sie sich stattdessen vor, es handele sich um XML und nicht um JSON. In beiden Fällen würde die XML-Datei die Schema-Validierung nicht bestehen - entweder wegen eines undefinierten Elements oder eines unzulässigen Elementwerts. Das wäre eine schlechte Anfrage. Das Gleiche gilt hier.

Kommentare (6)

Von w3.org

10.4.1 400 Schlechte Anfrage

Die Anfrage konnte vom Server nicht verstanden werden, da die Syntax nicht korrekt ist. Syntax. Der Client SOLLTE die Anfrage NICHT ohne Änderungen wiederholen.

Kommentare (5)

Denken Sie an die Erwartungen.

Als Client-Anwendung erwarten Sie, dass Sie wissen, wenn auf der Serverseite etwas schief läuft. Wenn der Server eine Fehlermeldung ausgeben muss, wenn blah fehlt oder der Wert von requestedResource falsch ist, wäre ein 400-Fehler angemessen.

Kommentare (0)