HTTP运行状况检查-GET或HEAD和200或204响应?

HTTP运行状况检查-GET或HEAD和200或204响应?,http,http-status-codes,health-monitoring,health-check,Http,Http Status Codes,Health Monitoring,Health Check,我想知道是否有一个通用的约定:当为任何给定的应用程序实现HTTP健康检查时,如果您对任何响应体都不感兴趣,而只对状态代码感兴趣,那么默认/预期的端点会是什么样子 使用HEAD请求并返回200或204状态代码(哪一个?) 对204使用GET 还有别的吗 使用带有相同状态代码的GET,可能还支持带有相同状态代码的头部 A应该给出与GET相同的响应,但没有响应主体,因此您应该首先知道/定义GET响应在头(和状态代码)方面给出的内容,然后,如果需要,您还可以支持在同一端点上返回相同的状态,在本例中为2

我想知道是否有一个通用的约定:当为任何给定的应用程序实现HTTP健康检查时,如果您对任何响应体都不感兴趣,而只对状态代码感兴趣,那么默认/预期的端点会是什么样子

  • 使用HEAD请求并返回200或204状态代码(哪一个?)
  • 对204使用GET
  • 还有别的吗

使用带有相同状态代码的GET,可能还支持带有相同状态代码的头部

A应该给出与GET相同的响应,但没有响应主体,因此您应该首先知道/定义GET响应在头(和状态代码)方面给出的内容,然后,如果需要,您还可以支持在同一端点上返回相同的状态,在本例中为204

请注意,如果
GET
employee/34
anwswers带有404,则
头也必须带有相同的代码。这意味着一个人必须做与获取相同的工作:检查员工是否有esists、设置状态等,但不能写任何响应。Tomcat自动支持这一点,因为它使用
HEAD
请求从不写入“真实”响应的响应对象,因此可以使用相同的代码处理
GET

一个检查也可以考虑,但它会产生一个响应体/输出镜像,您发送给它的是不同的,我没有看到在任何地方实现。

跟踪允许客户端查看在另一个服务器上接收到的内容 结束请求链,并将该数据用于测试或诊断 信息


使用一个GET,可能还支持具有相同状态代码的头部

A应该给出与GET相同的响应,但没有响应主体,因此您应该首先知道/定义GET响应在头(和状态代码)方面给出的内容,然后,如果需要,您还可以支持在同一端点上返回相同的状态,在本例中为204

请注意,如果
GET
employee/34
anwswers带有404,则
头也必须带有相同的代码。这意味着一个人必须做与获取相同的工作:检查员工是否有esists、设置状态等,但不能写任何响应。Tomcat自动支持这一点,因为它使用
HEAD
请求从不写入“真实”响应的响应对象,因此可以使用相同的代码处理
GET

一个检查也可以考虑,但它会产生一个响应体/输出镜像,您发送给它的是不同的,我没有看到在任何地方实现。

跟踪允许客户端查看在另一个服务器上接收到的内容 结束请求链,并将该数据用于测试或诊断 信息


根据我的经验,人们大多使用GET和200。健康检查不会回应太多内容,因此没有必要提出HEAD请求。但这主要是一个专门的健康检查URL的情况

今天的云系统通常使用Kubernetes或OpenShift。他们似乎使用了
GET
请求。我想他们可能想要一个
200
ish响应码,所以
200-299

另一个例子是,Drupal将HTTP响应代码定义为
200

在Oracle的Infrastructure-as-a-Service文档中,您可以在
GET
HEAD
请求之间进行选择,但默认为
HEAD


根据我的经验,人们大多使用GET和200。健康检查不会回应太多内容,因此没有必要提出HEAD请求。但这主要是一个专门的健康检查URL的情况

今天的云系统通常使用Kubernetes或OpenShift。他们似乎使用了
GET
请求。我想他们可能想要一个
200
ish响应码,所以
200-299

另一个例子是,Drupal将HTTP响应代码定义为
200

在Oracle的Infrastructure-as-a-Service文档中,您可以在
GET
HEAD
请求之间进行选择,但默认为
HEAD


谢谢,您很好地解释了何时使用GET vs HEAD。但是你能不能也回避一下我的问题的核心,关于健康检查端点使用什么?谢谢,你很好地解释了什么时候使用GET vs HEAD。但是,您是否也可以回避我的问题的核心,即如何使用健康检查端点?您应该阅读选项规范:从我的观点来看,健康检查可以使用GET或HEAD来完成,不存在通用约定。如果我必须在GET或HEAD之间进行选择,我会选择HEAD,因为它对于服务器和客户端来说更快、更轻。您应该阅读选项规范:在我看来,可以使用GET或HEAD进行健康检查,但不存在通用约定。如果我必须在GET和HEAD之间进行选择,我会选择HEAD,因为它对于服务器和客户端来说更快、更轻。