当我们试图遵循标准时,我们发现自己陷入了死胡同,因为我们需要构建一个应该是 GET 并且应该具有有意义的正文的请求。
该请求只是想检索一些数据,数据库内部没有任何修改,只是获取一些数据。但同时我们需要为我们想要检索的对象发送一个 id 数组,而且不,这些对象无法以任何方式索引,因此我们确实需要发送 id 列表,或者发出 100 个请求服务器将它们一一获取。那不会发生。
我们还可以将列表添加到 URL,但如果 id 列表太大,我们无法确定 URL 不会太长。因此,为了确保系统不会失败,我们要使用 Body。
我读到 GET 可以有一个正文,但前提是它没有意义: HTTP GET with request body
是的。换句话说,任何 HTTP 请求消息都可以包含消息正文,因此必须考虑到这一点来解析消息。然而,GET 的服务器语义受到限制,因此主体(如果有)对请求没有语义意义。解析的要求与方法语义的要求是分开的。
所以,是的,您可以使用 GET 发送正文,但不,这样做永远没有用。
这是 HTTP/1.1 分层设计的一部分,一旦规范划分(正在进行中),该设计将再次变得清晰。
....罗伊
但我们的 Body 是有意义的,这让我们必须在不遵循 HTTP 标准或不遵循 REST 标准之间做出决定。
还有其他选择吗?(并不是这阻碍了我们,而是我想知道答案)。
非常感谢。
您应该考虑将请求更改为 POST 方法。
据我了解,带有请求正文的 GET 存在三个潜在问题:(链接到博客)
所以你在使用 GET 处理 body 时会遇到问题
| 归档时间: |
|
| 查看次数: |
2561 次 |
| 最近记录: |