49

リクエストに必要なパラメーターが欠落している場合、どの HTTP ステータス レスポンス コードを使用する必要がありますか?を読みました。しかし、ヘッダーについて具体的に質問することはなく、コンセンサスが得られなかったようです。

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

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

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

誰かが私を啓発してもらえますか?ありがとう。

4

1 に答える 1

65

400不正な要求

リクエストのユーザー エラーです。403 とは異なり、クライアントは要求を繰り返すことを許可する必要がありますが、変更後にのみ許可する必要があります。

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

編集

Mark Reed がコメントで指摘しているように、403 は、「あなたが私に送ったものには何の問題もありません。あなたには適切な権限があり、構文は有効でした。私はあなたが要求したことをしたくありません。」

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

于 2012-05-14T02:31:59.590 に答える