Что такое тело (Body) HTTP POST-запроса?

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

Ответ

Тело (Body) HTTP POST-запроса — это часть запроса, которая содержит данные, отправляемые на сервер для обработки. В отличие от GET-запросов, где данные передаются в URL (как query-параметры), POST помещает их в тело, что безопаснее и позволяет передавать большие объемы информации.

Назначение: Передача структурированных данных, таких как JSON, XML, файлы или данные форм.

Ключевые аспекты:

  • Заголовок Content-Type: Обязательно указывает формат передаваемых данных, чтобы сервер мог их корректно интерпретировать.
  • Безопасность: Данные не отображаются в URL, в истории браузера или логах сервера (если не логируются специально), что лучше для конфиденциальной информации.
  • Объем: Не имеет жестких ограничений по размеру, в отличие от URL.

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

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

{
  "name": "Иван Иванов",
  "email": "ivan@example.com",
  "active": true
}

Распространенные типы содержимого (Content-Type):

  • application/json — для данных в формате JSON.
  • application/x-www-form-urlencoded — для данных HTML-форм (ключ=значение).
  • multipart/form-data — для отправки файлов и данных форм.
  • text/xml или application/xml — для XML-данных.