Полезная нагрузка в 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.