我正在尝试为内容暂时不可用但没有重定向的页面找到正确的 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.