私は現在、(Zend Frameworkのを利用して)、Webアプリケーションを構築することだし、ダウン基本HTTP statusコードの一部を得ている、:使用したHTTPステータスコードのような
- 404行方不明コントローラ/アクション に現時点ではApache
によって返されたサーバーの例外の
- ユーザーの役割を取得します。ユーザーがログインしていない場合は、「ゲスト」ユーザのルールは、リソース
2.1へのアクセス権を持っていることを
チェックの役割を割り当てます。 ではなく、がリソースにアクセスでき、ゲストである場合は、アクセスしようとしていたリソースを保存し、ログインプロンプトに転送します。資格情報を入力すると、元のリソースにリダイレクトされます(HTTPリダイレクトステータスコード経由)
2.2。ユーザが認証され、ACLがリソースへのアクセスを拒否した場合、彼はエラーコントローラに転送され、noPrivilegiesと呼ばれる動作に転送されます。
ユーザーがアクセス権を持っている場合は、通常どおりリクエストを続行します。
- CAN /私はHTTP 401が2.1シナリオのために使うべきでしょうか?クライアントから送信されたWWW-Authenticateヘッダーフィールドが必要なのと同じではありません。私はログインフォームを使ってログインする必要があります。しかし、依頼されたリソースにアクセスできないので依然として200 OKではないと私は考えています。
- 2.2シナリオでHTTP 401を使用できますか。同じ理由で、WWW-Authenticateは役に立ちません。おそらく、HTTP 403 Forbiddenを使用する方が良いでしょうか?
- これらの2つのシナリオでは、他のステータスコードをお勧めしますか?
- 通常、アプリケーションから返されるその他のステータスコードは、どのような場合に適用されますか?
私は反対です。あなたのデータベースに問題があるとします。それは200 OKを持っていることを意味しないし、まだ "おっと、私たちは現時点で問題が発生しているようです、blablablabla"と表示します。 – PatrikAkerstrand
が表示されますが、「oops ... blabla bla」と表示される方が、500エラーが表示されるようになります。 – Rufinus
@Machine:*ページ*が正常に読み込まれたので(http 200)、*アプリケーションレベルの問題がありました。あなたがデータベースを持っていないからといって、あなたのアプリが機能できないわけではありません。何らかの形で(例えば、エラーを報告したり、代替案などを提供する)可能性があります。 –