Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
修改随HTTP状态代码发送的文本是否可以接受?_Http_Http Headers_Http Status Codes - Fatal编程技术网

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

修改随HTTP状态代码发送的文本是否可以接受?,http,http-headers,http-status-codes,Http,Http Headers,Http Status Codes,我正在对我的网站实施一种“测试模式”,这将禁止在网站建设期间访问某些页面,使管理员只能访问这些页面进行私人测试。我计划使用401状态码,因为该页面确实存在,但不允许他们使用它,而且他们可能被验证,也可能未被验证,但只有某些用户(基本上是我)仍被允许访问该页面 我想知道的是HTTP/1.1401部分后面的文本是否重要?是否必须是未经授权的,或者基本上可以是您想放在后面的任何东西,只要401仍然适用于错误?我想发送一条消息,如暂时不可用,表明该页面通常对所有访问者可用,但正在重建,暂时不可用。我是否

我正在对我的网站实施一种“测试模式”,这将禁止在网站建设期间访问某些页面,使管理员只能访问这些页面进行私人测试。我计划使用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是一种临时条件,服务器过载或正在进行维护或其他操作时返回的。顺便说一下,这个链接现在可以正常工作了。你只是在服务器关闭时点击了它(你很幸运,呵呵)。但是,是的,很有道理!如果您看到状态消息“服务不可用”,则该服务器确实向您发送了一条有意义的错误消息。但是,如果它向你发送了“破碎”一词,我认为这没有意义,因为“破碎”涵盖了太多可能的条件。