没有重定向的内容不可用的HTTP状态代码

时间:2013-07-01 12:54:44

标签: html http-status-codes

我正在尝试为内容暂时不可用的页面找到正确的HTTP状态代码,但是没有重定向,而是在页面上显示一条消息,通知用户内容暂时不可用。

307 Temporary Redirect不适用,因为没有重定向。

404 Not Found可能适用,但是我不确定这是否是正确的回复,因为找不到内容,只是不可用。

410 Gone不适用,因为该内容将来某个时间会再次提供。

其他所有代码似乎都不适用。有谁知道正确使用的代码,可以解释原因吗?

2 个答案:

答案 0 :(得分:1)

听起来4XX系列的回复在这里是合适的。来自the RFC

  

4xx类状态代码适用于其中的情况      客户似乎有错误。除了响应HEAD请求时,      服务器应该包括一个包含对的解释的实体      错误情况,无论是暂时的还是永久的      条件。

考虑到这一点,我认为403禁止是最合适的:

  

10.4.4 403禁止

     

服务器理解请求,但拒绝履行请求。      授权无效,请求不应重复。      如果请求方法不是HEAD并且服务器希望进行      公开为什么请求没有得到满足,它应该描述      实体拒绝的原因。如果服务器不希望      将此信息提供给客户端,状态代码404      (未找到)可以代替使用。

我建议这有三个原因:

  1. 这不是一个奇特的代码,所以它在浏览器中可以正常工作。对我而言,这是最重要的原因 - 您将能够提供一个页面来解释内容不可用的原因,并且您可以相当肯定它将正确显示。

  2. 服务器应该说“我理解你的请求,但此时我不会为你提供这些内容”,这正是说明的前两行所说的。

  3. 对于任何机器人(或者就此而言,人们而言)都没有明确表示“忘了你对这个内容的了解”。


  4. 为了完整起见,这就是我排除其他响应代码类别的原因:

      

    2XX 成功:此类状态代码表示客户端的请求是      成功接受,理解和接受。

    • 但是,我们在这种情况下不接受请求。我不认为2XX是对的。
      

    3XX 重定向:此类状态代码表示需要采取进一步措施      由用户代理采取以完成请求。

    • 我认为你可以认为“进一步行动”意味着“请等到内容可用再重试”,但阅读其他3XX代码,“进一步行动”通常意味着“立即行动”重定向“,正如您已经指出的那样,是不合适的。
      

    5XX 服务器错误:以数字“5”开头的响应状态代码表示案例      服务器知道它有错误或无法执行      执行请求。

    • 服务器上没有出错,您只是不想立即提供内容。

答案 1 :(得分:0)

HTTP状态代码204

即。没有内容

在这里阅读更多相关信息:

http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

第10.2.5节

The server successfully processed the request, but is not returning any content.