当特定页面将关闭几天时应返回哪个 HTTP 状态

Which HTTP status should be returned when a SPECIFIC page will be down for several days

我们正在上传我们网站的新版本。 由于种种原因,旧版本中存在的一些页面还没有为新版本做好准备,我们需要暂时将其移除。

对于这些页面,我们应该 return 哪个 HTTP 状态,因为它们会在几天内再次 运行。

仅对这些页面使用 ServiceUnavailable = 503 是正确的方式还是会对整个网站产生负面影响?

(使用 ASP.NET 以防它以某种方式相关...)

这里的status code 503似乎是最好的选择:

The 503 (Service Unavailable) status code indicates that the server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.

在您的案例中,这不是由于过载或维护造成的,这应该无关紧要。相关的是这是你的错(因此来自 5xx class 的状态代码),并且它是暂时的(因此 503),所以没有必要让他们知道真实的原因。

虽然 503 通常用于整个网站,但我看不出为什么它不应该只用于特定页面。一个可能的缺点:如果机器人连续抓取了一些文档,给出 503,它可能会认为整个站点都受到影响并暂时停止抓取。

如果您知道该页面何时可以再次使用,您可以发送 Retry-After header:

When sent with a 503 (Service Unavailable) response, Retry-After indicates how long the service is expected to be unavailable to the client.

(FWIW,Googlebot seems to support this。)


在 post Website outages and blackouts the right way(当时由 Google 员工),就 Google 搜索而言,我的假设得到证实:503 也应该只用于特定页面;如果 Googlebot 得到许多 503 个答案,抓取速度可能会受到影响。