1. ホーム
  2. http-headers

[解決済み] 403 Forbiddenと401 UnauthorizedのHTTPレスポンスの比較

2022-03-16 07:17:54

質問内容

ウェブページは存在するが、ユーザーが十分な権限を持っていない(ログインしていない、または適切なユーザーグループに属していない)場合、提供すべき適切なHTTPレスポンスは何ですか?

401 Unauthorized ?
403 Forbidden ?
他に何か?

今まで読んだ本では、この2つの違いがあまり明確になっていません。それぞれの対応には、どのようなユースケースが適しているのでしょうか?

どのように解決するのですか?

からの分かりやすい説明 ダニエル・アーバイン :

に問題があります。 401 未承認 認証エラーのためのHTTPステータスコードです。これは認証のためのものであり、認可のためのものではありません。 401 レスポンスを受け取ると、サーバーはあなたに「あなたは認証されていません」と伝えます。 認証されていない、または認証されていない。 しかし、再認証してもう一度試してください"。助け舟を出すために を必ず含んでいます。 WWW-認証 ヘッダがあります。 を認証する。

これは一般に、ウェブサーバーから返されるレスポンスであり、あなたのウェブ アプリケーションで使用されます。

また、これは非常に一時的なもので、サーバーはあなたに再試行を要求しています。 を再度実行します。

そこで、認証のために 403 Forbidden というレスポンスが返ってきます。これは 永続的で、アプリケーションのロジックと結びついていて、より具体的である。 の方が401よりもレスポンスが良い。

403レスポンスは、サーバーがあなたに「ごめんなさい」と伝えるものです。私は知っています。 あなたが誰であるか、あなたが言うことを信じますが、あなたが持っていないだけです。 このリソースにアクセスする許可が必要です。もし、あなたがシステム 管理者にうまく伝えれば、許可を得られるでしょう。でも、迷惑をかけないようにお願いします。 あなたの窮状が変わるまで、もう二度と私の前に現れないでください"

要約すると 401 認証されない レスポンスを使用する必要があります。 または不正な認証、そして 403 Forbidden レスポンスが使用されるべきです。 その後、ユーザは認証されたが、そのユーザが認証する権限がない場合 は、指定されたリソースに対して要求された操作を実行します。

もう一つ ナイスピクトリアルフォーマット httpステータスコードの使用方法について。