Полезная нагрузка в HTTP запросах

Мы разобрались как писать адрес и указывать метод. Теперь разберемся с полезной нагрузкой.

Полезная нагрузка — это данные, которые мы отправляем на сервер.

Она может быть в разных форматах, но чаще всего используется JSON.

Передача данных в теле запроса

HTTP запросы могут содержать полезную нагрузку в теле запроса.

Это особенно важно для методов, которые изменяют состояние ресурса, например, POST, PUT и PATCH.

Вот пример запроса с полезной нагрузкой в формате JSON:

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

{
  "name": "John Doe",
  "email": "sampole@sample.com"
}

Передача данных в URL

Иногда данные передаются в URL, особенно для методов GET.

Например, при поиске пользователя по имени:

GET /api/users?name=John%20Doe HTTP/1.1
Host: example.com

В этом случае данные передаются в строке запроса (query string), которая начинается с вопросительного знака ?. Параметры разделяются амперсандом &.

Если там будет несколько параметров, то они будут выглядеть так:

GET /api/users?name=John%20Doe&age=30 HTTP/1.1
Host: example.com

Передача данных в заголовках

Данные также передаются в заголовках запроса.

Это может быть полезно для передачи метаданных, таких как авторизация или тип контента.

Пример запроса с заголовками:

POST /api/documents/upload?folder=contracts&type=pdf HTTP/1.1
Host: files.example.com
Content-Type: application/json
Authorization: Bearer 2f0ab1dxy81239123
User-Agent: MyUploader/1.0
X-Request-ID: 92fb4f17-21e2-4c9e-bc09-9901af3dfaa3
Accept-Language: en-US

{
  "fileName": "contract_2025.pdf",
  "fileSize": 245871,
  "tags": ["legal", "confidential"]
}

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

Кстати если вы заметили, то в этом примере есть body, query string и headers.