[解決済み] 403 Forbiddenと401 UnauthorizedのHTTPレスポンスの比較
質問内容
ウェブページは存在するが、ユーザーが十分な権限を持っていない(ログインしていない、または適切なユーザーグループに属していない)場合、提供すべき適切なHTTPレスポンスは何ですか?
401 Unauthorized
?
403 Forbidden
?
他に何か?
今まで読んだ本では、この2つの違いがあまり明確になっていません。それぞれの対応には、どのようなユースケースが適しているのでしょうか?
どのように解決するのですか?
からの分かりやすい説明 ダニエル・アーバイン :
に問題があります。 401 未承認 認証エラーのためのHTTPステータスコードです。これは認証のためのものであり、認可のためのものではありません。 401 レスポンスを受け取ると、サーバーはあなたに「あなたは認証されていません」と伝えます。 認証されていない、または認証されていない。 しかし、再認証してもう一度試してください"。助け舟を出すために を必ず含んでいます。 WWW-認証 ヘッダがあります。 を認証する。
これは一般に、ウェブサーバーから返されるレスポンスであり、あなたのウェブ アプリケーションで使用されます。
また、これは非常に一時的なもので、サーバーはあなたに再試行を要求しています。 を再度実行します。
そこで、認証のために 403 Forbidden というレスポンスが返ってきます。これは 永続的で、アプリケーションのロジックと結びついていて、より具体的である。 の方が401よりもレスポンスが良い。
403レスポンスは、サーバーがあなたに「ごめんなさい」と伝えるものです。私は知っています。 あなたが誰であるか、あなたが言うことを信じますが、あなたが持っていないだけです。 このリソースにアクセスする許可が必要です。もし、あなたがシステム 管理者にうまく伝えれば、許可を得られるでしょう。でも、迷惑をかけないようにお願いします。 あなたの窮状が変わるまで、もう二度と私の前に現れないでください"
要約すると 401 認証されない レスポンスを使用する必要があります。 または不正な認証、そして 403 Forbidden レスポンスが使用されるべきです。 その後、ユーザは認証されたが、そのユーザが認証する権限がない場合 は、指定されたリソースに対して要求された操作を実行します。
もう一つ ナイスピクトリアルフォーマット httpステータスコードの使用方法について。
関連
-
[解決済み] cURL呼び出しによるHTTPリクエストを使用してヘッダーを送信する方法は?
-
[解決済み] updateとdeleteのHTTPステータスコード?
-
[解決済み] カスタムHTTPヘッダー:命名規則
-
[解決済み] リソースが既に存在する場合の POST に対する HTTP レスポンスコード
-
[解決済み] 検証失敗または重複が無効な場合のREST HTTPステータスコード
-
[解決済み] HTTPヘッダーの大文字と小文字は区別されますか?
-
[解決済み] REST APIサービスが検証に失敗した場合に返すべき適切なHTTPステータスコードは何ですか?
-
[解決済み] httpマルチパートリクエストとは何ですか?
-
[解決済み】HTTPヘッダーの "Content-Length "フィールドとは?
-
[解決済み] HTTPレスポンスヘッダの重複は許容されますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] mp3ダウンロードのレスポンスのためのコンテンツタイプ
-
[解決済み] jQuery Ajax呼び出し後のリダイレクトリクエストを管理する方法
-
[解決済み] リソースが既に存在する場合の POST に対する HTTP レスポンスコード
-
[解決済み] Google ChromeでHTTPヘッダーを表示するにはどうすればよいですか?
-
[解決済み] httpマルチパートリクエストとは何ですか?
-
[解決済み】データのPOSTに対する400と422のレスポンス
-
[解決済み】302と307のリダイレクトの違いは何ですか?
-
[解決済み】djangoでResponse Forbiddenを発生させるには?
-
[解決済み】Access-Control-Allow-Credentialsヘッダーは、具体的に何をするのでしょうか?
-
[解決済み] HTTPレスポンスヘッダの重複は許容されますか?