官方参考文件指出,也可以通过_search
而不是POST
发送GET
个请求,因为并非所有客户都支持使用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传递身体中的参数?
答案 0 :(得分:2)
不,_search
端点是少数特殊情况之一。如果您查看RestIndicesStatsAction.java
中_stats
端点的源代码,您会发现只支持GET HTTP方法。
使用POST方法通常只有在要发送的有效负载可能非常大时才有意义,而对于少数参数(例如_stats
端点接受的参数)则不然。在这种情况下,在查询字符串中发送这些参数通常就足够了。