修改随HTTP状态代码发送的文本是否可以接受?
我正在对我的网站实施一种“测试模式”,这将禁止在网站建设期间访问某些页面,使管理员只能访问这些页面进行私人测试。我计划使用401状态码,因为该页面确实存在,但不允许他们使用它,而且他们可能被验证,也可能未被验证,但只有某些用户(基本上是我)仍被允许访问该页面 我想知道的是修改随HTTP状态代码发送的文本是否可以接受?,http,http-headers,http-status-codes,Http,Http Headers,Http Status Codes,我正在对我的网站实施一种“测试模式”,这将禁止在网站建设期间访问某些页面,使管理员只能访问这些页面进行私人测试。我计划使用401状态码,因为该页面确实存在,但不允许他们使用它,而且他们可能被验证,也可能未被验证,但只有某些用户(基本上是我)仍被允许访问该页面 我想知道的是HTTP/1.1401部分后面的文本是否重要?是否必须是未经授权的,或者基本上可以是您想放在后面的任何东西,只要401仍然适用于错误?我想发送一条消息,如暂时不可用,表明该页面通常对所有访问者可用,但正在重建,暂时不可用。我是否
HTTP/1.1401
部分后面的文本是否重要?是否必须是未经授权的,或者基本上可以是您想放在后面的任何东西,只要401仍然适用于错误?我想发送一条消息,如暂时不可用
,表明该页面通常对所有访问者可用,但正在重建,暂时不可用。我是否应该这样做?您可以更改它们
状态消息(技术上称为“原因短语”)仅为建议,“可以在不影响协议的情况下进行更改。”
看
但是,您应该:-)仍然正确地使用代码并给出有意义的消息。只有当您的条件是RFC所说的401时,才使用401。您可以更改文本(很少有http客户端注意到它),但最好使用最适用的响应代码。毕竟,指示故障原因的是各种响应代码的预期使用方式
也许这适合:
404找不到请求的资源找不到,但可能已找到
以后再次可用。[2]客户端的后续请求
是允许的
是的,原因短语可以更改。它不会影响信息的含义
但如果您需要说“暂时不可用”,则需要将其设置为5xx(服务器)代码。503似乎就在这里(请参阅)。您可以更改该文本,但大多数用户不会看到它。图形浏览器将在响应正文中显示HTML,而不是在HTTP响应头的第一行中显示原因码。因此,只有当您使用
curl--head
或telnet
之类的工具测试服务器时,您的更改才最为重要。对于这种情况,我宁愿使用503:我曾想到403,但503实际上更正确。401意味着:如果您提供了正确的凭据,您可能能够访问资源。例如,缺少密码或某些安全令牌。因为密码没有帮助,401是不合适的。谷歌以“错误401”、“错误403”和“错误503”作为解释。我最初考虑的是403,但身份验证将解决管理员的问题,也是唯一的临时问题,其中403状态指定不应重复请求。我觉得这意味着它永远不应该重复。否?那么您应该选择:404未找到请求的资源无法找到,但将来可能会再次可用。[2]允许客户端进行后续请求。特别是,401不是“暂时不可用”的正确状态。503服务不可用,如共享链接:-/已断开。503是一种临时条件,服务器过载或正在进行维护或其他操作时返回的。顺便说一下,这个链接现在可以正常工作了。你只是在服务器关闭时点击了它(你很幸运,呵呵)。但是,是的,很有道理!如果您看到状态消息“服务不可用”,则该服务器确实向您发送了一条有意义的错误消息。但是,如果它向你发送了“破碎”一词,我认为这没有意义,因为“破碎”涵盖了太多可能的条件。