Ответ
HTTP-методы (или "глаголы") определяют действие, которое клиент хочет выполнить с указанным ресурсом.
Основные методы (CRUD-операции):
| Метод | Идемпотентность* | Безопасность** | Назначение (Семантика) | Пример использования |
|---|---|---|---|---|
GET |
Да | Да | Получение данных ресурса. Не должен изменять состояние сервера. | Загрузка страницы, получение данных пользователя через API. |
POST |
Нет | Нет | Создание нового ресурса или запуск процесса. Тело запроса содержит данные для создания. | Отправка формы, создание нового заказа. |
PUT |
Да | Нет | Полное обновление ресурса. Если ресурса нет — может создавать его (зависит от реализации). | Обновление профиля пользователя целиком. |
PATCH |
Нет | Нет | Частичное обновление ресурса. Тело запроса содержит только изменяемые поля. | Изменение одного поля (например, телефона) в профиле. |
DELETE |
Да | Нет | Удаление указанного ресурса. | Удаление статьи, пользователя. |
Идемпотентность: Повторный идентичный запрос дает тот же результат, что и первый. *Безопасность: Метод не изменяет состояние сервера.
Другие важные методы:
HEAD— аналогиченGET, но сервер возвращает только заголовки ответа (без тела). Используется для проверки наличия ресурса или метаданных.OPTIONS— описывает коммуникационные параметры (доступные методы) для целевого ресурса.CONNECT— устанавливает туннель к серверу, идентифицированному целевым ресурсом (используется для SSL-прокси).
Практические примеры запросов к REST API:
GET /api/v1/users/123 HTTP/1.1
Host: example.com
POST /api/v1/users HTTP/1.1
Content-Type: application/json
{"name": "Alice", "email": "alice@example.com"}
PATCH /api/v1/users/123 HTTP/1.1
Content-Type: application/json
{"email": "new.alice@example.com"}