我正在尝试为内容暂时不可用但没有重定向的页面找到正确的 HTTP 状态代码,而是在页面上显示一条消息,通知用户内容暂时不可用。
307 Temporary Redirect
不适用,因为没有重定向。
404 Not Found
可能可能适用,但是我不确定这是否是在找到内容时给出的正确响应,只是不可用。
410 Gone
不适用,因为内容将在未来某个时间再次可用。
其他代码似乎都不适用。有谁知道要使用的正确代码并可以解释原因?
我正在尝试为内容暂时不可用但没有重定向的页面找到正确的 HTTP 状态代码,而是在页面上显示一条消息,通知用户内容暂时不可用。
307 Temporary Redirect
不适用,因为没有重定向。
404 Not Found
可能可能适用,但是我不确定这是否是在找到内容时给出的正确响应,只是不可用。
410 Gone
不适用,因为内容将在未来某个时间再次可用。
其他代码似乎都不适用。有谁知道要使用的正确代码并可以解释原因?
听起来4XX系列的反应在这里很合适。来自RFC:
4xx 类状态码适用于客户端似乎出错的情况。除了响应 HEAD 请求时,服务器应该包含一个实体,其中包含对错误情况的解释,以及它是暂时的还是永久的情况。
考虑到这一点,我认为 403 禁止是最合适的:
10.4.4 403 禁止
服务器理解请求,但拒绝执行。授权将无济于事,并且不应重复请求。如果请求方法不是 HEAD 并且服务器希望公开请求未完成的原因,它应该在实体中描述拒绝的原因。如果服务器不希望向客户端提供此信息,则可以使用状态代码 404(未找到)来代替。
我建议这样做有三个原因:
这不是一个奇特的代码,所以它可以在浏览器中正常工作。对我来说,这是最重要的原因 - 您将能够提供一个页面来解释内容不可用的原因,并且您可以相当肯定它会正确显示。
服务器说“我了解您的请求,但此时我不会为您提供该内容”是合适的,这正是描述的前两行所说的。
它没有明确对任何机器人(或就此而言,人)说“忘记你曾经知道这个内容”。
为了完整起见,这就是我排除其他响应代码类别的原因:
2XX Success:此类状态码表示客户端的请求被成功接收、理解、接受。
3XX 重定向:此类状态码表示用户代理需要采取进一步的行动才能完成请求。
5XX服务器错误:以数字“5”开头的响应状态码表示服务器知道自己出错或无法执行请求的情况。
HTTP 状态码204
即没有内容
在此处阅读更多信息:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
第 10.2.5 节
IE
The server successfully processed the request, but is not returning any content.