【问题标题】:What http code should a server respond with when it is being updated and partially available?服务器在更新和部分可用时应该响应什么 http 代码?
【发布时间】:2014-11-18 10:14:34
【问题描述】:

更新我的网站时,我将服务器切换到“更新”模式。对主域 (example.com) 的任何请求都会导致静态页面显示该站点正在更新。但是如何响应其他通常有效但正在更新的请求,例如图像、表单提交等?

应该返回哪个 HTTP 代码以便客户端知道请求暂时不可用?

4XX 不适合,因为它不是用户错误。 5XX 似乎不合适,因为没有内部错误。除了显示维护页面之外,它故意不服务任何请求

3XX 似乎不合适,因为文件(图像、页面等)没有移动到任何地方。它们只是暂时无法访问。

也许为了更好地理解我的意思,如果你曾经在 Keynote 期间访问过苹果网站,他们会将其离线进行维护,并显示一个黄色的“粘性”图片,表示他们很快就会回来。

编辑:对于主页,我不想返回 503,因为它不会显示在浏览器中。但对于正在更新的其他资产来说,这是有道理的。

【问题讨论】:

  • 503怎么了?
  • 好吧,我不想在主页上显示网站正在更新的消息,但也不想发送 503,因为那样人们可能会认为网站已关闭,因为503 不会在浏览器中呈现。我想只为正在更改的资产发送 503 是有意义的,而不是为主页发送 503。
  • 我认为这不是问题。您可以拥有仍然显示 HTML 的错误状态的页面。
  • 当错误为 4xx(客户端错误)时,我看到页面正在呈现。但在 5xx 的情况下,我没有。所以我想对于所有资产我应该只返回一个 503,但对于主页一个 200
  • 这不是一个好主意。如果该页面想要显示任何图像(徽标、横幅等),它将无法显示,并且用户只会看到占位符。用户体验不好。

标签: http http-status-codes


【解决方案1】:

HTTP Error 503 - 服务不可用

服务器当前不可用(因为它超载或停机维护)。通常,这是一种临时状态。

【讨论】:

  • 用 200 响应对主页的请求和用 503 响应其他资产(可以更新)的请求是否有意义?
  • 您可以拥有一个仍显示自定义 HTML 维护横幅的 503 主页。
  • 404 始终显示。但是是 503 的吗?我认为我从未见过像普通页面一样在浏览器中呈现的页面。
  • 我为 502 制作了这些页面。工作正常。看不出为什么它会与 503 不同。此外,如果您曾经使用过 Tomcat,您可能会遇到 500 Internal Server 错误以及详细的 Java 堆栈跟踪信息。
  • 不管报告的实际状态码是什么,大多数网络浏览器都会查看Content-Type 标头并在它是可显示类型时呈现内容,即使状态码是错误号也是如此。这允许用户查看服务器希望他们看到的自定义错误消息。请记住,网络浏览器主要用于基于用户的交互,而状态代码用于基于应用程序的交互。用户不关心错误代码,他们关心内容。如果服务器不提供错误内容,Web 浏览器可能会显示一般错误消息。
猜你喜欢
  • 2013-01-18
  • 1970-01-01
  • 2014-12-19
  • 1970-01-01
  • 2019-08-22
  • 2020-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多