HTTP 运行状况检查 - GET 或 HEAD 以及 200 或 204 响应?
HTTP health check - GET or HEAD and 200 or 204 response?
我想知道是否有一个通用的约定:当对任何给定的应用程序实施 HTTP 健康检查时,您对任何响应主体不感兴趣,只对状态代码感兴趣,default/expected端点是什么样的?
- 使用 HEAD 请求 - 并返回 200 或 204 状态代码(哪一个?)
- 使用带有 204 的 GET
- 还有别的吗?
使用带有 204 的 GET 可能还支持具有相同状态代码的 HEAD
A HEAD 应该给出与 GET 相同的响应但没有响应 body,因此您应该首先 know/define GET 响应根据 headers 给出的内容(和状态代码),然后,如果需要,您还可以在同一端点上支持 HEAD,返回相同的状态,在本例中为 204。
请注意,如果 GET
employee/34
使用 404 进行回答,则 HEAD
也必须使用相同的代码进行回答。这意味着必须做与 GET
相同的工作:检查员工是否存在,设置状态等,但不得写任何回复。 Tomcat 自动支持此功能,因为它用于 HEAD
请求响应 object 永远不会写入“真实”响应,因此可以使用相同的代码处理 GET
对于支票,人们也可以考虑 TRACE 但它会产生一个响应 body / 输出镜像你发送给它的内容,这是不同的,我还没有在任何地方看到实现。
TRACE allows the client to see what is being received at the other
end of the request chain and use that data for testing or diagnostic
information.
根据我的经验,人们主要使用 GET 和 200。健康检查不会响应太多内容,因此无需发出 HEAD 请求。但这主要是专门的健康检查 URL.
当今的云系统通常使用 Kubernetes 或 OpenShift。他们似乎使用 GET
请求。我想他们可能想要一个 200
左右的响应代码,所以 200-299
:
https://docs.openshift.com/enterprise/3.0/dev_guide/application_health.html
另一个例子,Drupal定义HTTP响应码为200
:
https://www.drupal.org/project/health_check_url
在 Oracle 的基础设施即服务文档中,您可以在 GET
和 HEAD
请求之间进行选择,但默认值为 HEAD
:
https://docs.oracle.com/en-us/iaas/api/#/en/healthchecks/20180501/HttpMonitor/
我想知道是否有一个通用的约定:当对任何给定的应用程序实施 HTTP 健康检查时,您对任何响应主体不感兴趣,只对状态代码感兴趣,default/expected端点是什么样的?
- 使用 HEAD 请求 - 并返回 200 或 204 状态代码(哪一个?)
- 使用带有 204 的 GET
- 还有别的吗?
使用带有 204 的 GET 可能还支持具有相同状态代码的 HEAD
A HEAD 应该给出与 GET 相同的响应但没有响应 body,因此您应该首先 know/define GET 响应根据 headers 给出的内容(和状态代码),然后,如果需要,您还可以在同一端点上支持 HEAD,返回相同的状态,在本例中为 204。
请注意,如果 GET
employee/34
使用 404 进行回答,则 HEAD
也必须使用相同的代码进行回答。这意味着必须做与 GET
相同的工作:检查员工是否存在,设置状态等,但不得写任何回复。 Tomcat 自动支持此功能,因为它用于 HEAD
请求响应 object 永远不会写入“真实”响应,因此可以使用相同的代码处理 GET
对于支票,人们也可以考虑 TRACE 但它会产生一个响应 body / 输出镜像你发送给它的内容,这是不同的,我还没有在任何地方看到实现。
TRACE allows the client to see what is being received at the other end of the request chain and use that data for testing or diagnostic information.
根据我的经验,人们主要使用 GET 和 200。健康检查不会响应太多内容,因此无需发出 HEAD 请求。但这主要是专门的健康检查 URL.
当今的云系统通常使用 Kubernetes 或 OpenShift。他们似乎使用 GET
请求。我想他们可能想要一个 200
左右的响应代码,所以 200-299
:
https://docs.openshift.com/enterprise/3.0/dev_guide/application_health.html
另一个例子,Drupal定义HTTP响应码为200
:
https://www.drupal.org/project/health_check_url
在 Oracle 的基础设施即服务文档中,您可以在 GET
和 HEAD
请求之间进行选择,但默认值为 HEAD
:
https://docs.oracle.com/en-us/iaas/api/#/en/healthchecks/20180501/HttpMonitor/