Ответ
PUT, POST и DELETE — это HTTP-методы для операций с ресурсами (CRUD).
| Метод | Назначение | Идемпотентность | Безопасность |
|---|---|---|---|
| PUT | Создание или полное обновление ресурса по известному URI. | Да | Нет |
| POST | Создание нового ресурса или выполнение сложных действий. | Нет | Нет |
| DELETE | Удаление ресурса по указанному URI. | Да | Нет |
Ключевые различия:
- PUT идемпотентен: многократный вызов с одними данными даёт тот же результат (ресурс создаётся или обновляется один раз).
- POST не идемпотентен: каждый вызов может создать новый ресурс.
- PUT требует полного представления ресурса, POST может принимать частичные данные.
Примеры запросов:
# PUT — обновить или создать пользователя с id=1
PUT /api/users/1 HTTP/1.1
Content-Type: application/json
{"name": "Alice", "email": "alice@example.com"}
# POST — создать нового пользователя (id присвоит сервер)
POST /api/users HTTP/1.1
Content-Type: application/json
{"name": "Bob", "email": "bob@example.com"}
# DELETE — удалить пользователя с id=1
DELETE /api/users/1 HTTP/1.1
Практическое правило: Используйте POST для создания, PUT для обновления (если клиент знает полный URI), DELETE для удаления.