HTTP 400 (不正なリクエスト) は論理エラーであり、リクエスト構文が不正なわけではありません。質問する

HTTP 400 (不正なリクエスト) は論理エラーであり、リクエスト構文が不正なわけではありません。質問する

HTTP/1.1 仕様 (RFC 2616)の意味について次のように述べている。ステータスコード 400、不正なリクエスト (§10.4.1):

構文が不正なため、サーバーはリクエストを理解できませんでした。クライアントはリクエストを変更せずに繰り返すべきではありません。

最近では、いくつかのHTTPベースのAPIでは、400を次の意味で使用するのが一般的であるようです。論理的なではなく構文リクエストにエラーが生じた。APIはこれを区別するために行っているのではないかと思う。400(クライアント誘発)および500(サーバーによる)。非構文エラーを示すために 400 を使用することは許容されますか、それとも誤りですか? 許容される場合、400 の意図された使用法についてより詳しい情報を提供する RFC 2616 の注釈付きリファレンスはありますか?

例:

ベストアンサー1

ステータス 422 (RFC 4918、セクション 11.2) 頭に浮かぶ:

422 (処理不可能なエンティティ) ステータス コードは、サーバーがリクエスト エンティティのコンテンツ タイプを理解し (したがって、415 (サポートされていないメディア タイプ) ステータス コードは不適切)、リクエスト エンティティの構文は正しい (したがって、400 (不正なリクエスト) ステータス コードは不適切) が、含まれている命令を処理できなかったことを意味します。たとえば、XML リクエスト ボディに、適切な形式 (つまり、構文的には正しい) だが意味的に誤った XML 命令が含まれている場合に、このエラー状態が発生する可能性があります。

おすすめ記事