【问题标题】:HTTP status code for overloaded server过载服务器的 HTTP 状态码
【发布时间】:2012-08-14 21:13:16
【问题描述】:

有几个小时我的网站服务器负载过大。
我应该向访问我网站的 Googlebot 发送哪个 HTTP 状态代码?

269 稍后回拨”是否适合这种情况,或者 503 服务不可用 或者您还有什么建议吗?

【问题讨论】:

标签: http seo http-status-codes googlebot http-status-code-503


【解决方案1】:

503 表示服务暂时不可用,因此适合在服务器过载时使用。 http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

Wikipedia 文章将 269 定义为必须异步处理的请求的初始响应。 269 表示请求向服务器的待办事项“队列”添加了一些内容,服务器将尽快获得响应,而 503 表示服务器不会“记住”该请求。

不过,我从未听说过 269,Google 的第一个搜索结果是这个问题,然后是 Wikipedia 文章。

【讨论】:

  • 标准里一定是个笑话。客户问“到 69?”服务器在完成请求后响应:“稍后再回电!”客户认为“是的,当然,我会打电话给你。”
  • 该 269 代码已从 Wikipedia 中删除,此后确认它不是真正的定义。
【解决方案2】:

另一个选项是 429 - Too Many Requests 响应。

在 RFC6585 中定义 - https://www.rfc-editor.org/rfc/rfc6585#section-4

规范没有定义源服务器如何识别用户,也没有定义请求计数的方式。

例如,限制请求速率的源服务器可以根据每个资源、整个服务器甚至一组服务器的请求计数来执行此操作。

同样,它可能通过身份验证凭据或有状态 cookie 来识别用户。

另请参阅响应中的 Retry-After 标头。

【讨论】:

  • 429 适用于 用户 发出过多请求的情况。如果服务器因多个用户而过载,则不应返回。 4xx 代码适用于用户不按规则玩的情况。 5xx 应该意味着这是用户不负责的事情。
  • 这不是 RFC 所说的:请注意,本规范没有定义源服务器如何识别用户,也没有定义它如何计算请求。例如,限制请求速率的源服务器可以基于每个资源、整个服务器甚至一组服务器之间的请求计数来执行此操作。
  • 但是你错过了更大的图景。 “10.4 客户端错误 4xx 4xx 类状态代码适用于客户端似乎出错的情况。”我的意思是确定你可以做任何你想做的事情,但是明确的“意图”是针对 4xx 错误,用于客户端明显犯错时。您所描述的与此意图背道而驰。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-12-13
  • 1970-01-01
  • 2013-11-14
  • 1970-01-01
  • 2018-10-05
  • 2018-09-24
  • 1970-01-01
相关资源
最近更新 更多