如何解决响应较大的HTTP状态代码413/400
当响应的大小较大时,我将遇到错误,我们可以通过在Apigee中启用流传输来解决以下问题(当前超出范围,因为所有上行流都需要工作)
The error pasted below: {"Envelope":{"Body":{"Fault":{"faultcode":"soap:Server","detail":{"source":{"errorcode":"protocol.http.TooBigBody"}},"faultstring":"Body buffer overflow","faultactor":{}}},"encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/"}
当我们从下游系统得到以上错误时,我正在计划提出错误。什么是 HTTP状态代码?
413请求实体太大
400“消息:响应很大”
解决方法
我的投票赞成 500-内部服务器错误,正文中有一些细节。 4xx错误代码指示客户端在进行一些修改后应重试该请求。此处似乎并非如此。
,在这种情况下,如果您将/将无法执行任何操作以将具有预期正文属性的响应返回给客户端,则应返回500,并显示一条正确消息。 我在响应的某些部分看到服务返回200和问题的详细信息,并以好消息(好消息)作为errorMessage或类似情况下的内容。 这里的想法是传播异常,以便客户端应用程序可以向最终用户发出正确的消息,因此,应让客户端应用程序了解消息的问题。
,好吧,看来应该是500错误。而且,作为一种好的做法,您应该像在此之前一些睿智的人所说的那样,在正文中添加一些细节或一个良好而清晰的信息。
所有4xx错误均表示系统正常,但您的要求不正确。一些例子:
-
400
:由于客户端错误,将不会处理请求。过去,此代码仅用于语法错误,但如今更为通用:https://tools.ietf.org/html/rfc7231#section-6.5.1 -
403
:表示服务器可以理解该请求,但拒绝对其进行授权。 -
415
:不支持有效载荷格式 -
422
:请求格式和语法都可以,但是服务器不会处理它。通常,当验证失败或某些语义不正确时,可以提出一个好的建议。更多:https://tools.ietf.org/html/rfc4918#section-11.2
您可以检查所需的所有RFC,并且在这种情况下不会找到4xx错误。除非您解释不正确,否则用户应以任何方式更改请求以获得正确的结果。在这种情况下,422
可能是您的选择,例如,如果请求的格式和语法正确,但是用户请求的资源过多。
HTTP 413 Payload Too Large
的状态代码为错误,因为它告诉客户端您正在发送大量请求,并导致混乱。
在这种情况下,HTTP 400 Bad Request
的状态代码为错误,因为请求正确并且服务器知道它想要得到什么,但是由于自身的限制,服务器不想回答这样的响应大小。
HTTP 403 Forbidden
应该是您的选择。
服务器理解了该请求,但拒绝执行该请求。
注意,在大多数情况下,最好使用正确的响应状态代码和自定义消息来告知拒绝请求的原因。
,如果我正确理解了您的问题,则您的API服务器无法完全满足收到的请求,因为对该请求的响应太大。
在这种情况下,我们应该返回 503-服务不可用。这样,我们可以表明我们的API服务器无法暂时响应该请求,这不是API服务器的完整停机时间,并且并非在所有时间都发生在所有请求上。仅当响应/有效负载过大且选择性请求过大时,才会发生这种情况。由于我们的API服务器当时无法处理和响应请求,因此应该可以。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。