Какие основные форматы данных можно передать в теле HTTP-запроса?

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

Ответ

Формат данных в HTTP-запросе определяется заголовком Content-Type. Основные форматы:

Формат MIME-тип Использование Пример тела запроса
JSON application/json REST API, обмен структурированными данными. {"user": {"name": "Alice", "id": 123}}
Form Data (URL-encoded) application/x-www-form-urlencoded Отправка простых пар «ключ-значение» из HTML-форм. username=alice&password=secret
Multipart Form Data multipart/form-data Отправка файлов вместе с текстовыми полями. (Содержит границы для разделения частей)
XML application/xml, text/xml SOAP-сервисы, legacy системы. <request><user>Alice</user></request>
Plain Text text/plain Передача простого текста. Hello, server!
Binary Data application/octet-stream, image/png, etc. Загрузка файлов (изображений, PDF). (Байтовый поток)

Пример отправки JSON через curl:

curl -X POST https://api.example.com/users 
  -H "Content-Type: application/json" 
  -d '{"name": "Alice", "role": "developer"}'

Почему важен Content-Type: Сервер использует этот заголовок, чтобы правильно распарсить (parse) тело запроса. Неверный тип может привести к ошибке 415 Unsupported Media Type.