【发布时间】:2014-12-20 06:21:24
【问题描述】:
有时(当资源被请求太频繁时)我会拦截带有验证码的 (HTML) 资源的呈现。拦截不会产生任何重定向。它发生在同一个 URI 上。
我现在想知道哪种 HTTP 状态代码最适合这些要求:
它应该符合语义。
Google 应该明白,这种拦截是一种临时情况,不应影响其索引中的现有资源。
网络浏览器将显示带有验证码的响应正文。
这些是我目前确定的候选人:
409 Conflict
由于与资源的当前状态冲突,请求无法完成。仅在预期用户可能能够解决冲突并重新提交请求的情况下才允许使用此代码。响应正文应该包含足够的信息,以便用户识别冲突的来源。
这听起来很完美。冲突状态来自那些过于频繁地请求资源的客户端。响应还包括足够的信息来确定冲突的根源并解决它。
503 Service Unavailable
由于服务器临时过载 [...],服务器当前无法处理请求。这意味着这是一种暂时的情况[…]。如果已知,延迟的长度可以在 Retry-After 标头中指示。
这听起来很合适。我什至可能知道延迟的长度并提供这样的标题。但是我在这里错过了用户可以解决问题的观点。此外,范围太广(服务器过载与资源过载)。
【问题讨论】:
标签: http captcha http-status-codes http-status-code-503 http-status-code-409