我有一个大型的 F5 LTM 负载均衡器环境,我正在对其进行配置以在 URI 级别限制请求。对于人类网络用户,我们会将他们 302 转到一个繁忙的页面,但我们也运行网络服务,需要礼貌地告诉 soap 客户端继续前进并进行繁殖。由于对 SOAP/XML 响应一无所知,我不清楚我们应该告诉客户端什么。一个非常基本的 500 响应是否足够,还是我们还需要制作一个合法的 SOAP 响应?
答案1
SOAP 响应由服务定义(即 WSDL)决定,除此之外,通常使用合适的 HTTP 响应代码对于“合同”范围之外的情况。
我不会因为懒惰而使用 500,而是选择:
- 409 冲突
- 410 已消失
- 417 期望失败
- 429 请求过多
- 501 未实现
- 503服务不可用
- 509 超出带宽限制
- 507 存储空间不足
查看完整列表并选择最合适的。
如果服务器能够返回一个详细说明错误的 XML 文档,那么这样做是正常的。我使用的 SOAP 服务在服务定义中允许这样做。
客户端必须能够应对未修饰的 HTTP 错误,因为有时服务器故障甚至在请求 XML 被解析之前就发生了。