Ответ
Да, технически возможно, но это противоречит стандарту HTTP.
- Стандарт (RFC 7231): Спецификация не запрещает тело в GET-запросе, но указывает, что сервер должен его игнорировать. На практике многие серверы, прокси или брандмауэры могут отвергнуть такой запрос.
- Практика: Использование тела в GET считается антипаттерном. Для передачи данных следует использовать:
- Query-параметры в URL (например,
?search=value&page=2). - Методы POST или PUT, если данные сложные или объемные.
- Query-параметры в URL (например,
- Исключения: Некоторые API (например, Elasticsearch) допускают GET с телом для удобства составления сложных поисковых запросов в JSON.
Пример отправки (curl, не рекомендуется):
curl -X GET -H "Content-Type: application/json" -d '{"query":{"match_all":{}}}' http://example.com/search
Рекомендуемая альтернатива (использование POST для поиска):
curl -X POST -H "Content-Type: application/json" -d '{"query":{"match_all":{}}}' http://example.com/search