web-dev-qa-db-ja.com

必要なヘッダーが欠落している場合に返すのに最も適切なHTTPステータスコードは何ですか?

私は読んだ リクエストに必要なパラメータがない場合、どのHTTPステータス応答コードを使用する必要がありますか? しかし、ヘッダーについて具体的に質問しておらず、コンセンサスが得られていないようです。

この質問のコンテキストは、認証が成功したことを前提としています。私は現在、400(これは実際には「不正な構文」の場合ではないため、正しくないと感じますが)または403のいずれかを好みます。403の説明を考えると:

サーバーは要求を理解しましたが、それを実行することを拒否しています。承認は役に立ちません。リクエストは繰り返されるべきではありません。 リクエストメソッドがHEADでなく、サーバーがリクエストが実行されなかった理由を公開したい場合は、拒否の理由を説明する必要があります。エンティティ。

これは私にとって最も理にかなっています。

誰かが私を教えてくれませんか?ありがとう。

36
David Peden

400不正な要求

リクエストのユーザーエラーです。 403とは異なり、クライアントはshouldリクエストの繰り返しを許可されますが、変更後のみです。

10.4.1 400 Bad Request構文が正しくないため、サーバーは要求を理解できませんでした。クライアントは、変更せずに要求を繰り返すべきではありません(SHOULDNOT)。

編集

Mark Reedがコメントで指摘しているように、403は、「あなたが送ってくれたものに問題はありません。あなたには適切な承認があり、構文は有効でした。あなたが求めることをしたくないだけです」と述べています。

太字の部分は、サーバーがそのように選択した場合、要求を実行したくない理由をクライアントに正確に伝えることができることを示しています。

50
Tim Pote