400 BAD request HTTPエラーコードの意味は?

私はHTTP URLに投稿するJSONリクエストを持っています。

これは、requestedResourceフィールドは存在するが、"Roman"がこのフィールドの無効な値である場合、400として扱うべきでしょうか?

[{requestedResource:"Roman"}] 

"blah"フィールドが全く存在しない場合、これは400として扱うべきですか?

[{blah:"Roman"}]

400は、リクエストが不正な形式であったことを意味します。つまり、クライアントがサーバーに送信したデータストリームがルールに従っていなかったということです。

JSONのペイロードを持つREST APIの場合、400'は一般的に、そして正しく言うと、サービスのAPI仕様に従ってJSONが何らかの形で無効であることを示すために使用されます。

その論理からすると、あなたが提示したシナリオはどちらも400'sになるはずです。

これがJSONではなく、XMLであった場合を想像してみてください。どちらのケースでも、XMLはスキーマの検証を通過しないでしょう。これは悪いリクエストになります。ここでも同じことが言えます。

解説 (6)

w3.orgより

10.4.1 400 Bad Request と表示されました。 構文が不正なため、サーバーがリクエストを理解できませんでした。 リクエストはサーバーに理解されませんでした。クライアントはこのリクエストを変更せずに繰り返すべきではありません。 変更せずにリクエストを繰り返すべきではありません。

解説 (5)

期待を込めて

クライアントアプリケーションとしては、サーバー側で何か問題が発生したことを知ることを期待しています。サーバが blah が見つからないときや requestedResource の値が正しくないときにエラーを出す必要があるならば、400エラーが適切でしょう。

解説 (0)