Какие HTTP-методы могут содержать тело запроса?

«Какие HTTP-методы могут содержать тело запроса?» — вопрос из категории HTTP и веб-протоколы, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Тело запроса (request body) может присутствовать в следующих HTTP-методах:

  • POST — для создания нового ресурса.
  • PUT — для полной замены ресурса.
  • PATCH — для частичного обновления ресурса.
  • DELETE — редко, но спецификация допускает тело для передачи дополнительных параметров удаления.

Почему? Методы GET, HEAD, OPTIONS и TRACE семантически предназначены для получения информации о ресурсе, а не для передачи данных на сервер, поэтому тело запроса для них обычно не используется или игнорируется.

Пример POST-запроса с телом в формате JSON:

POST /api/users HTTP/1.1
Host: example.com
Content-Type: application/json

{
  "name": "Alice",
  "email": "alice@example.com"
}

Best Practice: Всегда явно указывайте заголовок Content-Type (например, application/json) при отправке тела запроса.