【问题标题】:Does Elasticsearch support POST over GET only for the _search endpoint or all?Elasticsearch 仅支持 _search 端点或所有端点的 POST over GET 吗?
【发布时间】:2015-11-08 10:30:17
【问题描述】:

官方参考指出,也可以通过POST 而不是GET 发送_search 请求,因为并非所有客户端都支持使用GET 发送正文(请参阅https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-body.html)。然后,您可以将来自 URL 的查询参数也作为 JSON 直接插入正文中。

现在我想知道:对于 Elasticsearch 提供的所有需要​​查询参数的 GET 请求是否都是这样?

例如,_stat 端点 (https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-stats.html) 记录为 GET 请求(这是有道理的),但支持 URI 参数。在这种情况下使用POST 并使用 JSON 传递正文中的参数是否安全?

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    不,_search 端点是少数特殊情况之一。如果您查看RestIndicesStatsAction.java_stats 端点的源代码,您会发现仅支持GET HTTP 方法。

    使用 POST 方法通常仅在要发送的有效负载非常大的情况下才有意义,对于少数参数(例如 _stats 端点接受的参数)而言,情况并非如此。在这种情况下,在查询字符串中发送这些参数通常就足够了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-28
      • 1970-01-01
      • 2019-02-01
      • 2019-04-01
      • 2021-05-01
      相关资源
      最近更新 更多