当我们尝试遵循标准时,我们发现自己处于死胡同,因为我们需要建立一个应该是GET并且应该具有意义的请求。
请求只是想要检索一些数据,不需要修改数据库,只是获取一些数据。但同时我们需要为我们想要检索的对象发送一个id数组,不,这些对象不能以任何方式编入索引,因此我们确实需要发送id列表或者另外发出100个请求服务器逐个获取它们。那不可能发生。
我们也可以将列表添加到URL中,但如果ID列表太大,我们无法确定URL是否会过长。因此,为了确保系统不会失败,我们希望使用Body。
我读到GET可以有一个Body,但前提是它没有意义: HTTP GET with request body
是。换句话说,任何HTTP请求消息都允许包含消息体,因此必须使用该消息体解析消息 心神。但是,GET的服务器语义受到限制,因此a body(如果有的话)对请求没有语义含义。要求 解析与方法语义的要求是分开的。
所以,是的,您可以使用GET发送一个正文,不,这样做是绝对没用的。
这是HTTP / 1.1的分层设计的一部分,一旦规范被分区(正在进行中),它将再次变得清晰。
...罗伊
但是我们的身体是有意义的,这使我们必须在不遵循HTTP标准或不遵循REST标准之间做出决定。
还有其他选择吗? (这不是阻止我们,但我想知道答案)。
非常感谢。