Дело в том, что вы можете отправить GET
запрос с телом. Текущий стандарт HTTP rfc7231 (устаревшие rfc2616 и обновления rfc2817 ) не определяет строго, что должно произойти с запросом GET
с телом. Предыдущие версии были другими в этом отношении. По этой причине некоторые HTTP-серверы позволяют это, а некоторые другие, боюсь, нет. Этот случай упоминается в последнем стандарте следующим образом:
Полезная нагрузка в сообщении запроса GET не имеет определенной семантики;
отправка тела полезной нагрузки по запросу GET может вызвать некоторые существующие
реализации, чтобы отклонить запрос.
С точки зрения Elasticsearch, использование GET
для поискового запроса является дизайнерским решением. Они чувствуют, что это имеет смысл с точки зрения семантики. Потому что он представляет действие извлечения данных лучше, чем глагол POST
.
С другой стороны, как упоминалось выше, запрос GET
с телом не поддерживается повсеместно. Вот почему Postman не позволяет вам этого делать, хотя Kibana> Dev Tool делает это с помощью cURL. Поэтому API поиска Elasticsearch также поддерживает POST
запросов для поиска и извлечения информации. Таким образом, если вы не можете сделать запрос GET
с телом, вы можете получить точно такой же результат, сделав запрос POST
.