HTTPステータスコードで送信されたテキストを変更することは可能ですか?

私は自分のウェブサイトで「テストモード」を実装しています。これは、建設中の特定のページへのアクセスを禁止し、管理者がプライベートテスト用にアクセスできるようにしています。私は、 というページが存在するが、それを使うことは許されていないし、認証されていないかもしれないので、401ステータスコードを使うつもりだった。ページにアクセスすることを許可されます。

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

4
この場合は、503を使用します。 stackoverflow.com/a/1701622/39321
追加された 著者 Svish,
そのテキストを変更することはできますが、ほとんどのユーザーはそれを見ることはできません。グラフィカルブラウザーは、HTTP応答ヘッダーの最初の行にある理由コードではなく、応答本文にHTMLを表示します。ですから、あなたの変更は、 curl --headtelnet のようなものを使ってサーバをテストしている場合にのみ重要です。
追加された 著者 Joe White,
私は403を考えましたが、503は実際より正確です。 401の意味:正しい資格情報を入力した場合は、リソースにアクセスできる可能性があります。たとえば、パスワードまたは一部のセキュリティトークンがありません。パスワードは助けにならないので、401は適切ではありません。 Googleは「エラー401」、「エラー403」、「エラー503」を説明しています。
追加された 著者 gnasher729,

3 答え

あなたはそれらを変更することができます。

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

See http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html#sec6.1.1

しかし、あなたはまだコードを適切に使用し、意味のあるメッセージを与えるべきです(SHOULD)。あなたの条件がRFCによると401が必要とするものであれば、401を使用してください。

4
追加された
特に、401は「一時的に利用できません」の正しいステータスではありません。
追加された 著者 Julian Reschke,

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

おそらくこれは適合します:

404が見つかりません要求されたリソースは見つかりませんでしたが、   今後も利用可能になります。[2]クライアントによる後続のリクエスト   許可されています。

0
追加された
最初は403と思っていましたが、管理者の場合には問題が解決されるだけでなく、暫定的な状況で403ステータスでリクエストを繰り返さないが指定されています。私はそれが繰り返されるべきではないことを意味していると感じています。いいえ?
追加された 著者 animuson,
404 Not Found要求されたリソースは見つかりませんでしたが、今後再び利用可能になる可能性があります。[2]クライアントによる後続の要求は許可されます。
追加された 著者 Raymond Hettinger,

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

しかし、 "一時的に利用できない"と言う必要がある場合は、5xx(サーバー)コードにする必要があります。 503がここにあるようです( RFC 2616、第10.5.4項< a>)。

0
追加された