Какой заголовок HTTP используется для отправки данных в формате JSON?

«Какой заголовок HTTP используется для отправки данных в формате JSON?» — вопрос из категории HTTP и веб-протоколы, который задают на 24% собеседований AQA / Automation. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Для указания формата данных в теле запроса используется заголовок Content-Type: application/json.

Почему это важно:

  • Серверу он сообщает, как интерпретировать тело запроса (как JSON, а не, например, XML или простой текст).
  • Клиенту (например, тестовому фреймворку) он необходим для корректного формирования запроса.

Пример использования в тестах (Java, RestAssured):

import io.restassured.RestAssured;
import io.restassured.http.ContentType;

// Установка заголовка Content-Type для POST-запроса
RestAssured
    .given()
        .contentType(ContentType.JSON) // Устанавливает заголовок Content-Type: application/json
        .body("{"name": "John", "age": 30}")
    .when()
        .post("/api/users")
    .then()
        .statusCode(201);

На практике в QA: При тестировании API мы всегда проверяем, что запросы отправляются с правильным Content-Type, а сервер возвращает ошибку 415 Unsupported Media Type, если заголовок неверен или отсутствует.