我想知道这是否有一个通用的约定:当对任何给定的应用程序实现HTTP健康检查时,如果您对任何响应体不感兴趣,而只对状态代码感兴趣,那么默认/预期端点会是什么样的呢?
发布于 2020-12-28 08:39:29
据我的经验,人们大多使用GET和200。健康检查不会回应太多的内容,所以没有使用头部请求。但是,大多数情况下,有一个专门的健康检查URL。
今天的云系统经常使用Kubernetes或OpenShift。它们似乎使用了GET请求。我想他们可能想要一个200的ish响应代码,所以200-299
另一个示例,Drupal将HTTP响应代码定义为200
在甲骨文的基础设施即服务文档中,您可以在GET和HEAD请求之间进行选择,但默认情况是HEAD
https://docs.oracle.com/en-us/iaas/api/#/en/healthchecks/20180501/HttpMonitor/
发布于 2020-12-22 23:14:44
使用带有204的GET,可能还支持具有相同状态代码的头部
头应该提供与GET相同的响应,但没有响应主体,因此您首先应该知道/定义GET响应根据头(和状态代码)发出的内容,然后,如果需要,还可以在同一个端点上支持HEAD,返回相同的状态,在本例中是204。
注意,如果GET、employee/34和404的anwswers也是HEAD,那么HEAD必须具有相同的代码。这意味着必须执行与GET相同的工作:检查员工是否存在、设置状态等,但不能写入任何响应。Tomcat自动支持这一点,因为它用于HEAD请求--一个从未写入“真实”响应的响应对象,因此可以使用相同的代码来处理GET。
对于检查,您也可以考虑使用跟踪,但是它会产生一个响应体/输出,反映您发送给它的内容,这是不同的,我还没有看到任何实现。
跟踪允许客户端查看请求链的另一端接收到的内容,并将该数据用于测试或诊断信息。
https://stackoverflow.com/questions/65259144
复制相似问题