Что кладешь в body что нельзя положить в query-параметры при запросе

Ответ

В body можно передавать любые данные, включая бинарные (например, файлы), сложные структуры (JSON, XML) или большие объемы данных. В query-параметрах ограничения:

  1. Длина URL – браузеры/серверы имеют лимиты (~2000 символов)
  2. Типы данных – query-параметры всегда строки, сложные структуры нужно сериализовать
  3. Безопасность – query виден в URL, логируется, не подходит для sensitive data

Пример POST с JSON в body:

fetch('/api/data', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ user: 'admin', pass: 'secret' })
});

То же через query (не рекомендуется!):

GET /api/data?user=admin&pass=secret