Какова структура HTTP-запроса с методом POST?

«Какова структура HTTP-запроса с методом POST?» — вопрос из категории HTTP и веб-протоколы, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Метод POST используется для отправки данных на сервер, обычно для создания нового ресурса. Его структура включает обязательные и опциональные части.

Компоненты POST-запроса:

  1. Стартовая строка: POST <URI> HTTP/<Версия>
  2. Обязательные/рекомендуемые заголовки:
    • Host — домен сервера.
    • Content-Type — формат тела запроса (например, application/json, multipart/form-data).
    • Content-Length — размер тела в байтах.
    • Authorization — данные для аутентификации.
  3. Тело запроса (Body) — содержит передаваемые данные. Формат зависит от Content-Type.

Примеры тел запроса:

JSON (application/json):

{
  "title": "Новая задача",
  "completed": false
}

Форма (application/x-www-form-urlencoded):

title=Новая+задача&completed=false

Form-data (multipart/form-data) — для загрузки файлов.

Полный пример POST-запроса:

POST /api/tasks HTTP/1.1
Host: example.com
Content-Type: application/json
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9
Content-Length: 46

{"title": "Новая задача", "completed": false}

Важно: В отличие от GET, параметры POST передаются в теле, а не в URL, что безопаснее для конфиденциальных данных и позволяет отправлять большие объемы информации.