Вопрос проверяет понимание устройства HTTP-запросов и корректного выбора способа передачи данных.
Query-параметры передаются в URL и подходят для фильтрации и поиска. Body используется для передачи данных запроса и не отображается в адресной строке. Query легко логируются и кэшируются, body — нет. Обычно query используют для чтения, body — для отправки данных. Выбор влияет на безопасность и семантику API.
HTTP предоставляет несколько способов передачи данных, и каждый из них имеет своё назначение.
Query-параметры являются частью URL.
Особенности:
видны в адресной строке
легко копируются
часто кэшируются
Типичные сценарии:
фильтрация
сортировка
пагинация
GET /users?page=2&limit=10
Body — это тело HTTP-запроса.
Особенности:
не отображается в URL
подходит для передачи сложных структур
безопаснее для чувствительных данных
Типичные сценарии:
создание и обновление данных
авторизация
отправка форм
{
"email": "user@example.com",
"password": "secret"
}
Безопасность
body предпочтительнее для чувствительных данных
Семантика
query для запроса состояния
body для его изменения
Ограничения
URL имеет ограничения по длине
body — практически нет
Query и body решают разные задачи. Грамотный API использует их по назначению, а не взаимозаменяемо.