我理解GET和POST的定义如下.
GET:列出集合的成员,并使用其成员URI进行进一步导航.例如,列出所有待售汽车.
POST:在集合中创建一个新条目,集合自动分配ID.创建的ID通常作为此操作返回的数据的一部分包含在内.
MY API在服务器中搜索一些具有巨大请求负载的详细信息,在这种情况下我应该使用哪个动词?
也有人可以让我知道可以在查询字符串中传递的字符的长度.
GET和POST请求之间的主要区别在于,在前者中,整个请求被编码为URL本身的一部分,而在后者中,参数在头之后发送.此外,在GET请求中,不同的浏览器会对URL的大小施加不同的限制.大多数现代浏览器至少允许200KB,但Internet Explorer似乎将URL大小限制为2KB.
话虽这么说,如果您怀疑您将传递大量参数,这些参数可能超过接收Web服务器对GET请求施加的限制,您应该切换到POST.
晚会晚了,但是对于任何寻求解决方案的人来说,这可能有所帮助。
我只是想出了两种解决这个问题的策略。我将创建概念证明API,并测试哪种套件更适合我。这是我目前正在考虑的解决方案:
1. X-HTTP-Method-Override:
基本上,我们将使用POST / PUT方法隧道GET请求,并添加X-HTTP-Method-Override请求标头,以便服务器将请求路由到GET调用。易于实施,一口气即可工作。
2.分而治之:
将请求分为两个单独的请求。发送具有所有有效负载的POST / PUT请求,服务器将向其创建必要的响应并将其与键/ id一起存储在缓存/ db中,以访问数据。然后,服务器将使用“ Location”标头或可通过其访问存储的响应的Key / id进行响应。
现在,发送GET请求以及服务器在先前的POST请求上给定的密钥/位置。实现起来有点复杂,需要两个请求,还需要一个单独的策略来清理缓存的响应。
mch*_*raz -12
如果您要从服务器获取数据,请使用 GET。如果您想发布内容,请使用 POST。有效负载大小无关紧要。如果您想使用较小的有效负载,您可以实现分页。
| 归档时间: |
|
| 查看次数: |
13512 次 |
| 最近记录: |