我正在尝试为内容暂时不可用的页面找到正确的HTTP状态代码,但是没有重定向,而是在页面上显示一条消息,通知用户内容暂时不可用。
307 Temporary Redirect
不适用,因为没有重定向。
404 Not Found
可能适用,但是我不确定这是否是正确的回复,因为找不到内容,只是不可用。
410 Gone
不适用,因为该内容将来某个时间会再次提供。
其他所有代码似乎都不适用。有谁知道正确使用的代码,可以解释原因吗?
答案 0 :(得分:1)
听起来4XX系列的回复在这里是合适的。来自the RFC:
4xx类状态代码适用于其中的情况 客户似乎有错误。除了响应HEAD请求时, 服务器应该包括一个包含对的解释的实体 错误情况,无论是暂时的还是永久的 条件。
考虑到这一点,我认为403禁止是最合适的:
10.4.4 403禁止
服务器理解请求,但拒绝履行请求。 授权无效,请求不应重复。 如果请求方法不是HEAD并且服务器希望进行 公开为什么请求没有得到满足,它应该描述 实体拒绝的原因。如果服务器不希望 将此信息提供给客户端,状态代码404 (未找到)可以代替使用。
我建议这有三个原因:
这不是一个奇特的代码,所以它在浏览器中可以正常工作。对我而言,这是最重要的原因 - 您将能够提供一个页面来解释内容不可用的原因,并且您可以相当肯定它将正确显示。
服务器应该说“我理解你的请求,但此时我不会为你提供这些内容”,这正是说明的前两行所说的。
对于任何机器人(或者就此而言,人们而言)都没有明确表示“忘了你对这个内容的了解”。
为了完整起见,这就是我排除其他响应代码类别的原因:
2XX 成功:此类状态代码表示客户端的请求是 成功接受,理解和接受。
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.