2011-11-12 6 views
3

私は自分のウェブサイトで「テストモード」を実装しています。これは、建設中の特定のページへのアクセスを禁止し、管理者がプライベートテスト用にアクセスできるようにしています。私は、のページが存在するので、401ステータスコードの使用を計画していましたが、使用することができず、認証されていてもいなくても、特定のユーザー(基本的に私)ページ。HTTPステータスコードで送信されたテキストを変更することはできますか?

HTTP/1.1 401の後のテキストが重要なのは私が思っていることでしょうか?それはUnauthorizedでなければならないのですか?それとも、401がまだエラーのために適切であるかぎり、基本的にそれを後ろに置きたいことはありますか? Temporarily Unavailableのようなメッセージを送信して、ページが通常はすべての訪問者に利用可能であるが、再構築中であり、一時的に利用できないことを示したいと考えました。私はこれをしなければならないのでしょうか?

+1

このテキストは変更できますが、ほとんどのユーザーには表示されません。グラフィカルブラウザーは、HTTP応答ヘッダーの最初の行にある理由コードではなく、応答本文にHTMLを表示します。だからあなたの変更は、 'curl --head'や' telnet'のようなものを使ってサーバをテストしているときにのみ重要です。 –

+0

私はむしろ503を使いたいと思っています:http://stackoverflow.com/a/1701622/39321 – Svish

+0

私は403を考えていましたが、503は実際より正確です。 401の意味:正しい資格情報を入力した場合は、リソースにアクセスできる可能性があります。たとえば、パスワードまたは一部のセキュリティトークンがありません。パスワードは助けにならないので、401は適切ではありません。 Googleは「エラー401」、「エラー403」、「エラー503」を説明しています。 – gnasher729

答えて

3

変更することができます。

ステータスメッセージ(技術的には「理由フレーズ」と呼ばれる)は推奨事項であり、「プロトコルに影響を与えることなく変更することができます」。

はしかし、あなたはまだ適切にコードを使用して、意味のあるメッセージを与える必要があります:-) http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html#sec6.1.1

を参照してください。あなたの条件がRFCによると401が必要とするものであれば、401を使用してください。

+0

特に、401は「一時的に利用できません」の正しいステータスではありません。 –

0

あなたはテキストを変更することができます(ほとんど注意を払わないHTTPクライアントはほとんどありません)が、最も適切な応答コードを使用する方がよいでしょう。 Afterall、失敗の理由を示すのは、さまざまな応答コードがどのように使用されるのかです。

おそらくこれは、フィット:

404要求されたリソースが見つかりませんでしたが見つかりましたが、将来的に再び 利用可能であるとは限らない[2]。クライアントによるその後の要求 は許可されます。

+0

私は最初は403と考えましたが、管理者の場合には認証だけでなく、403ステータスで「要求を繰り返さない」という唯一の一時的な問題が解決されます。私はそれが繰り返されるべきではないことを意味していると感じています。いいえ? – animuson

+0

次に行く必要があります:404 Not Found 要求されたリソースが見つかりませんでしたが、今後再び利用可能になる可能性があります。[2]クライアントによる後続の要求は許可されます。 –

0

はい、理由句を変更できます。メッセージの意味には影響しません。

「一時的に利用できない」と言う必要がある場合は、5xx(サーバー)コードにする必要があります。 503はここにあるようです(RFC 2616, Section 10.5.4参照)。

関連する問題