К списку
HTTP, REST и APIJuniorСкрининг с HR

Роль HTTP-заголовков Content-Type и Accept в API-запросах

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

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

Развёрнуто

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

Заголовок Content-Type определяет тип содержимого в теле HTTP-сообщения, а Accept сообщает серверу, какие форматы ответа поддерживает клиент.


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

В HTTP-протоколе заголовки Content-Type и Accept играют ключевую роль в согласовании форматов данных между клиентом и сервером.

  • Content-Type — указывает MIME-тип данных, передаваемых в теле запроса или ответа, например, application/json или text/html. Это позволяет серверу или клиенту корректно интерпретировать содержимое.

  • Accept — сообщает серверу, какие форматы данных клиент готов обработать в ответе. Например, Accept: application/json означает, что клиент желает получить JSON.

Заголовок Назначение Пример значения
Content-Type Тип данных в теле HTTP-запроса или ответа application/json
Accept Предпочтительные форматы ответа от сервера application/json, text/xml

Таким образом, эти заголовки обеспечивают совместимость форматов данных в коммуникации между клиентом и сервером.

Пример

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

{
  "name": "Иван",
  "age": 30
}

В данном запросе клиент отправляет JSON-объект (Content-Type: application/json) и ожидает получить ответ также в формате JSON (Accept: application/json).

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

  • Content-Type определяет формат данных в теле сообщения, а Accept — формат ожидаемого ответа.
  • Неверное указание Content-Type может привести к ошибкам обработки на сервере или клиенте.
  • Заголовок Accept помогает серверу выбрать подходящий формат ответа, если поддерживается несколько вариантов.
  • В REST API часто используются application/json для обмена данными.
  • Понимание этих заголовков важно для тестирования корректности коммуникации между клиентом и сервером.

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