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

问题描述 投票:1回答:1

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

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

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

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

asp.net httpwebrequest monitoring http-status-codes isalive
1个回答
1
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.