Ответ
POST — это HTTP-метод, предназначенный для отправки данных на сервер, обычно для создания нового ресурса. Он не является идемпотентным: многократная отправка одного и того же запроса может привести к созданию нескольких ресурсов.
Ключевые отличия от GET:
- Данные передаются в теле запроса (request body), а не в URL.
- Нет ограничений на размер передаваемых данных (в разумных пределах конфигурации сервера).
- Более безопасен для передачи конфиденциальной информации, так как данные не отображаются в URL или истории браузера.
Типичные сценарии использования: создание пользователя, отправка формы, загрузка файла, выполнение неидемпотентного действия.
Пример POST-запроса для создания пользователя:
POST /api/v1/users HTTP/1.1
Host: api.example.com
Content-Type: application/json
Authorization: Bearer <token>
{
"name": "Jane Doe",
"email": "jane@example.com",
"password": "securePassword123"
}
Ожидаемый успешный ответ сервера:
HTTP/1.1 201 Created
Content-Type: application/json
Location: /api/v1/users/456
{
"id": 456,
"name": "Jane Doe",
"email": "jane@example.com",
"createdAt": "2023-10-05T12:00:00Z"
}
Код состояния 201 Created и заголовок Location с URI нового ресурса — лучшие практики для ответа на успешный POST-запрос.