用于表示Web请求的IsAlive成功/失败的HTTP状态代码是什么?

时间:2015-10-30 17:27:10

标签: asp.net httpwebrequest monitoring http-status-codes isalive

我有一个Web应用程序,为此我有一个isalive页面定期被点击(监视)以确保我的应用程序正常工作(或者顾名思义是活着的。)

通常,这个主要功能/页面在处理方面非常轻。它会检查应用程序所依赖的内容,如SQL连接,Fileshare连接等(除了显然验证Web服务器上的应用程序本身可以为此当前的isalive请求提供服务)。

目前我们使用HTTP状态代码200表示成功,HTTP状态代码500表示失败(我们在响应时设置HTTP状态代码)。但有些我觉得,这是不准确的(在我看来),因为HTTP状态代码500是内部服务器错误,并且可能无法准确表示失败情况,因为失败可能会被抛出,不仅仅是由于Web级别故障,而且也可能是由于依赖性失败,如SQL,FS连接检查。

由于这对许多人来说似乎是一个相当标准的用例,因此行业标准是什么?我做得对吗?建议或您如何处理这一点将非常感激。

1 个答案:

答案 0 :(得分:1)

200和500对于您的用例非常准确。

如果您的isalive页面由pingdomwdt.io(而不是人类)等自动监控服务使用,您可以将其更改为返回204(无内容),因为那样更有效率。

从客户端的角度来看,Web服务器,数据库和文件系统都是服务器的一部分。因此,如果其中一个失败,则500响应是正确的。如果要区分Web服务器错误与其他上游服务,如果其中一个上游服务失败,则可以返回502。就个人而言,我不会打扰并尽量保持isalive的实现尽可能简单。