Ответ
HTTP-методы (или глаголы) определяют действие, которое клиент хочет выполнить с ресурсом на сервере.
Основные методы и их назначение:
-
GET— запрашивает представление ресурса. Безопасный и идемпотентный.GET /api/users/123 HTTP/1.1 Host: example.com- Не имеет тела запроса.
- Используется для чтения данных.
-
POST— отправляет данные для создания нового ресурса. Не идемпотентный.POST /api/users HTTP/1.1 Content-Type: application/json {"name": "Alice"}- Имеет тело запроса с данными.
- Сервер определяет URI для нового ресурса.
-
PUT— полностью заменяет ресурс по указанному URI. Идемпотентный.PUT /api/users/123 HTTP/1.1 Content-Type: application/json {"name": "Alice Updated"}- Если ресурс существует — обновляется, если нет — может создаваться.
-
PATCH— применяет частичные изменения к ресурсу. Идемпотентный (должен быть).PATCH /api/users/123 HTTP/1.1 Content-Type: application/json [{"op": "replace", "path": "/name", "value": "Bob"}] -
DELETE— удаляет указанный ресурс. Идемпотентный.DELETE /api/users/123 HTTP/1.1
| Сравнительная таблица: | Метод | Назначение | Тело запроса | Идемпотентность | Безопасность |
|---|---|---|---|---|---|
| GET | Получить ресурс | Нет | Да | Да | |
| POST | Создать ресурс | Да | Нет | Нет | |
| PUT | Заменить ресурс | Да | Да | Нет | |
| PATCH | Частично обновить | Да | (Да) | Нет | |
| DELETE | Удалить ресурс | Нет | Да | Нет |
Идемпотентность означает, что многократное выполнение одного и того же запроса дает идентичный результат. Безопасность означает, что метод не изменяет состояние сервера.