Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: HTTP request, Content-Type, JSON, form data, multipart, body

Какие типы данных могут передаваться в body HTTP-запроса?

Этот вопрос проверяет понимание форматов данных, которые можно передавать в теле HTTP-запроса, что необходимо для корректной работы с REST API и другими веб-сервисами.

Короткий ответ

В тело HTTP-запроса можно передавать данные в различных форматах, которые определяются заголовком Content-Type. Основные типы: application/json для структур данных JSON, application/x-www-form-urlencoded для простых пар ключ-значение (как в HTML-формах), multipart/form-data для загрузки файлов вместе с текстовыми полями, а также text/plain, application/xml или даже бинарные данные (например, image/jpeg). Сервер использует заголовок Content-Type, чтобы понять, как интерпретировать полученные байты.

Длинный ответ

Тело (body) HTTP-запроса используется для передачи данных от клиента к серверу, например, при отправке формы, создании ресурса через API или загрузке файла. Конкретный формат этих данных указывается в обязательном заголовке Content-Type, который сообщает серверу, как правильно разобрать полученный поток байтов.

Основные форматы тела запроса

  • application/x-www-form-urlencoded: Стандартный формат для данных HTML-форм. Данные кодируются в виде пар ключ=значение, объединённых символом &, а специальные символы заменяются на процентное кодирование. Например: name=John+Doe&age=30.
  • multipart/form-data Используется, когда нужно отправить файлы вместе с текстовыми полями. Тело разделяется на части (parts) границей (boundary), каждая часть содержит свои заголовки и данные. Это позволяет передавать бинарные данные без потерь.
  • application/json Наиболее популярный формат для REST API. Данные передаются в виде строки JSON, что удобно для сложных вложенных структур. Например: {"title": "Post", "published": true}.
  • text/plain, application/xml, application/octet-stream Также возможны: простой текст, XML или произвольные бинарные данные (например, для загрузки картинки или PDF).

Пример кода отправки разных типов

Ниже показано, как отправить запросы с разными типами контента с помощью JavaScript (Fetch API).

// 1. JSON
fetch('/api/users', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ name: 'Alice', age: 25 })
});

// 2. Form-encoded данные
const formData = new URLSearchParams();
formData.append('username', 'john');
formData.append('password', 'secret');

fetch('/login', {
  method: 'POST',
  headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
  body: formData
});

// 3. Multipart (с файлом)
const multiPartForm = new FormData();
multiPartForm.append('document', fileInput.files[0]);
multiPartForm.append('comment', 'Please review');

fetch('/upload', {
  method: 'POST',
  // Заголовок Content-Type НЕ указывается явно, браузер сам установит с boundary
  body: multiPartForm
});

Выбор формата зависит от задачи: JSON — для API, form-urlencoded — для простых форм, multipart — для загрузки файлов. Всегда указывайте правильный Content-Type, иначе сервер может не распознать данные.

  • Аватар

    iOS Guru

    Roman Isakov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    3

  • Сложность:

    3

Навыки

  • JavaScript

    JavaScript

  • Networks

Ключевые слова

#HTTP request

#Content-Type

#JSON

#form data

#multipart

#body

Подпишись на iOS Developer в телеграм

  • Аватар

    iOS Guru

    Roman Isakov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.