16

私は、コンピュータサイエンスの論文のために、ダイナミックカープーリングアプリケーション用のRESTfulプロトコルを構築しています。

プロトコルでは、各操作のHTTPステータスコードも正式に指定する必要があります。この「プライバシー関連」の問題があります。次のように仮定します。

GET /api/persons/angela/location

ユーザー「アンジェラ」の現在位置を取得します。誰もが結果を得ることができるとは限らないことは明らかです。アンジェラ自身と彼女を選ぶ可能性のあるドライバーだけがそれを知ることができるはずです。

ここで404NotFoundまたは401Forbiddenのどちらを返すかを決めることはできません。

ヒントはありますか?何が一番いいのか、そしてその理由は?

4

4 に答える 4

35

ウィキペディア(およびRFC 2616 )によると、ページが存在するが認証が必要な場合は401コードが使用されます。403は、認証によって何も変更されないページ用です。(実際には、403は通常、何かに対する権限が間違っていることを意味しますが、401はユーザーにユーザー名/パスワードの入力を求めます)。404は、ドキュメントが存在しない場所用です。

あなたの場合、ページにアクセスできるユーザーを認証する方法があるので、401が最も適切なコードのようです。

于 2010-08-23T12:30:22.123 に答える
5

間違いなく404ではありません。404が見つかりません。
401はアクセス拒否です。
403は禁止されています。

私は401で行きます

于 2010-08-23T12:33:03.390 に答える
3

承認資格情報がリクエストで提供され、リクエスターにこのリソースにアクセスする権限がない場合は、403を返す必要があります。

リクエストで認証クレデンシャルが提供されていない場合は、401を返す必要があります。

于 2010-08-23T12:51:53.803 に答える
2

私には400の悪いリクエストを使用します。
私のアプリケーションはプログラムでアクセスできないリソースに移動しないためです。
私の意見では、ユーザーのアクセス許可をフィルタリングし、アクセスできないリソースを非表示にすることは、優れたユーザーエクスペリエンスです。私のサーバーがアクセスできないリクエストを受け取った場合、それは誰かが何かをしようとしていることを意味します。
それが私が400を選択する理由です-私のアプリケーションで悪い要求。

于 2016-09-11T02:24:05.123 に答える