SOAP 和 HTTP 响应代码

Ale*_*x T 5 soap web-services

HTTP 上的 SOAP 端点是否会返回除 200 和 500 之外的任何状态代码?我有一个 SOAP 端点,它具有一些业务逻辑,可以在请求过多时拒绝请求。我想知道在这种情况下正确的 HTTP 响应代码是什么 - 500 或 429?在SOAP规范似乎隐隐约约对我说:

SOAP HTTP 遵循 HTTP 状态代码的语义,用于在 HTTP 中传递状态信息。例如,2xx 状态代码表示客户端的请求(包括 SOAP 组件)已成功接收、理解和接受等。

如果在处理请求时发生 SOAP 错误,SOAP HTTP 服务器必须发出 HTTP 500“内部服务器错误”响应并在响应中包含一个 SOAP 消息,该消息包含一个 SOAP Fault 元素(参见第 4.4 节),指示 SOAP 处理错误。

Nam*_*ian 6

简而言之,SOAP 使用 HTTP/HTTPS 作为传输。它不绑定到 HTTP/S。SOAP 还可以使用 SMTP 和 JMS 作为传输。是的,您可以通过电子邮件执行 SOAP。

提到的 200 和 500 错误代码只是让 SOAP 知道消息包含成功或失败的 SOAP 请求的标准方式。因此,我将使用 500 并在标准 SOAP 错误中记录错误。