HTTP上的 SOAP 端点是否应返回除 200 和 500 之外的任何状态代码?我有一个 SOAP 端点,它有一些业务逻辑,可以在请求太多时拒绝请求。我想知道在这种情况下正确的 HTTP 响应代码是什么 - 500 或 429?SOAP 规范对我来说似乎很模糊:
SOAP HTTP 遵循 HTTP 状态代码的语义 在 HTTP 中传达状态信息。例如,2xx 状态 代码指示客户端的请求,包括 SOAP 组件 被成功接收、理解和接受等。
如果在处理请求时出现 SOAP 错误,则 SOAP HTTP 服务器必须发出 HTTP 500"内部服务器错误"响应,并且 在包含 SOAP 错误元素的响应中包含 SOAP 消息 (请参阅第 4.4 节(指示 SOAP 处理错误。
简而言之,SOAP 使用 HTTP/HTTPS 作为传输。SOAP 也可以使用 SMTP 和 JMS 作为传输。是的,您可以通过电子邮件执行 SOAP。
提到的 200 和 500 错误代码只是让 SOAP 知道消息包含成功或失败的 SOAP 请求的标准方法。 因此,我将使用 500 并在标准 SOAP 错误中记录错误。