0

从访问数据库的服务器端脚本向客户端返回错误消息的最佳实践是什么?

例如,假设客户端使用 AJAX POST 从数据发送并期望服务器返回一些 JSON 数据以显示。如果 PHP 服务器脚本无法连接到数据库(我正在使用 mysqli_connect() )怎么办?我必须发回带有错误消息的显式 JSON 数据吗?或者我可以在客户端 POST 回调函数中使用状态对象吗?

4

2 回答 2

1

HTTP 规范实际上提供了错误代码503 Service Unavailable,我相信它适用于这种情况:

由于服务器临时过载或维护,服务器当前无法处理请求。这意味着这是一种暂时的情况,经过一段时间的延迟会得到缓解。如果已知,延迟的长度可以在 Retry-After 标头中指示。如果没有给出 Retry-After,客户端应该像处理 500 响应一样处理响应。

仅此状态代码就足以让客户端知道存在错误(任何 4xx 或 5xx 都是错误),但您的应用程序必须确定应该发送哪些内容。如果客户端期待 JSON(请参阅Accept标头),那么向他们发送 JSON 内容是有意义的。但是,HTTP 状态代码是确定是否存在问题的编程方式。

于 2013-07-02T15:01:15.453 回答
0

很大程度上取决于应用程序的性质和客户端类型。

例如,如果它是一个内部 Web 应用程序,则发送回错误代码、错误消息、导致错误的文件甚至可能是完整的堆栈跟踪很有用。

如果是随机客户使用的公共网站,应该足以发回一个不泄露的错误信息,即:“发生错误,请在几分钟后重试”

于 2013-07-02T15:07:55.103 回答