html tool

2018年1月17日星期三

GET请求有携带数据的问题,好奇怪的发现


https://es.xiaoleilu.com/054_Query_DSL/75_Queries_with_filters.html

携带内容的GET请求?
任何一种语言(特别是js)的HTTP库都不允许GET请求中携带交互数据。 事实上,有些用户很惊讶GET请求中居然会允许携带交互数据。
真实情况是,http://tools.ietf.org/html/rfc7231#page-24[RFC 7231], 一份规定HTTP语义及内容的RFC中并未规定GET请求中允许携带交互数据! 所以,有些HTTP服务允许这种行为,而另一些(特别是缓存代理),则不允许这种行为。
Elasticsearch的作者们倾向于使用GET提交查询请求,因为他们觉得这个词相比POST来说,能更好的描述这种行为。 然而,因为携带交互数据的GET请求并不被广泛支持,所以searchAPI同样支持POST请求,类似于这样:
POST /_search
{
  "from": 30,
  "size": 10
}
这个原理同样应用于其他携带交互数据的GETAPI请求中。

我们将在后续的章节中讨论聚合查询,但是现在我们把关注点仅放在查询语义上。

没有评论:

发表评论