К списку
HTTP, REST и APIMiddleТехническое

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

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

HTTP поддерживает передачу различных форматов данных: текстовые (JSON, XML, HTML), двоичные (изображения, файлы) и данные форм (application/x-www-form-urlencoded, multipart/form-data). Выбор формата зависит от задачи и требований сервера.

Развёрнуто

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

В HTTP-запросах можно передавать данные в формате JSON, XML, HTML, обычного текста, двоичные файлы (например, изображения) и данные форм с кодировками application/x-www-form-urlencoded и multipart/form-data. Формат выбирается исходя из специфики передаваемой информации и возможностей сервера.


Как это работает

HTTP — это протокол передачи данных, который не ограничивает формат содержимого. Контент-тип указывается в заголовке Content-Type и определяет, как сервер должен интерпретировать тело запроса.

  • application/json — для структурированных данных в формате JSON.
  • application/xml — для XML-документов.
  • text/html или text/plain — для текстовых данных.
  • application/x-www-form-urlencoded — для передачи данных форм в виде пары ключ-значение, кодированных URL.
  • multipart/form-data — для отправки файлов и сложных форм.
  • Двоичные данные (например, изображения, PDF) передаются с соответствующим MIME-типом, например image/png.
Формат Описание Пример использования
application/json Структурированные данные JSON REST API, AJAX-запросы
application/xml XML-документы SOAP, некоторые API
text/plain Обычный текст Отладка, передача простых строк
application/x-www-form-urlencoded Данные формы, закодированные URL HTML-формы, простые формы
multipart/form-data Файлы и данные форм Загрузка изображений, файлов

Пример

POST /upload HTTP/1.1
Host: example.com
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary

------WebKitFormBoundary
Content-Disposition: form-data; name="file"; filename="photo.png"
Content-Type: image/png

<двоичные данные файла>
------WebKitFormBoundary--

В этом примере данные файла передаются через multipart/form-data с указанием типа содержимого, что позволяет серверу корректно обработать загруженный файл.

Что важно знать на собеседовании

  • Заголовок Content-Type определяет формат передаваемых данных в HTTP-запросе.
  • Разные форматы подходят для разных задач: JSON для API, формы для веб-форм, двоичные для файлов.
  • application/x-www-form-urlencoded — самый простой формат для отправки форм.
  • multipart/form-data необходим для загрузки файлов вместе с другими данными.
  • Сервер должен уметь корректно обрабатывать указанный клиентом формат.

Тема: HTTP, REST и API | Уровень: middle