修改使用HTTP状态代码发送的文本是否可以接受?

时间:2011-11-12 02:58:11

标签: http http-headers http-status-codes

我正在使用我的网站实施“测试模式”,该网站在进行构建时禁止访问某些页面,使其仅供管理员访问以进行私人测试。我打算使用401状态代码,因为页面确实存在,但不允许使用它,它们可能会或可能不会被验证,但只有某些用户(基本上是我)仍然会被允许访问该页面。

我想知道的是HTTP/1.1 401部分之后的文字是否重要?它必须是Unauthorized还是它基本上可以是你想要放在它之后的任何东西,只要401仍然适合错误?我想发送一条消息,例如Temporarily Unavailable,以表明该页面通常可供所有访问者使用,但正在进行重建并暂时无法使用。我应该这样做吗?

3 个答案:

答案 0 :(得分:7)

你可以改变它们。

状态消息(技术上称为“原因短语”)仅是建议,“可以在不影响协议的情况下进行更改。”

请参阅http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html#sec6.1.1

但是,您应该:-)仍然正确使用代码并提供有意义的消息。如果你的条件是RFC所说的那样,那么只能使用401。

答案 1 :(得分:2)

是的,可以更改短语的原因。它不会影响消息的含义。

但如果您需要说“暂时不可用”,则需要将其设为5xx(服务器)代码。 503似乎就在这里(见RFC 2616, Section 10.5.4)。

答案 2 :(得分:1)

您可以更改文本(很少有http客户端注意它),但最好使用最适用的响应代码。毕竟,指出失败的原因是如何使用各种响应代码。

也许这适合:

  

404 Not Found无法找到所请求的资源但可能是   将来再次可用。[2]客户的后续请求   是允许的。