- HEAD: Запрашивает заголовки, которые были бы получены с помощью метода GET, но без тела ответа. Полезен для проверки существования ресурса или получения метаинформации. Идемпотентный и безопасный.
- GET: Запрашивает представление указанного ресурса. Используется для извлечения данных. Идемпотентный и безопасный.
- POST: Отправляет данные для обработки указанному ресурсу. Данные включаются в тело запроса. Используется для создания нового ресурса или отправки данных формы. Небезопасный и не идемпотентный (повторные запросы могут приводить к созданию дубликатов).
- PUT: Отправляет данные для обновления или создания ресурса по указанному URI. Если ресурс не существует, сервер может его создать. Данные включаются в тело запроса. Идемпотентный (повторные запросы не меняют состояние сервера после первого успешного запроса). Небезопасный.
Ключевые отличия:
| Метод | Назначение | Тело запроса | Тело ответа (обычно) | Идемпотентный | Безопасный |
|---|
| HEAD | Получить заголовки | Нет | Нет | Да | Да |
| GET | Извлечь ресурс | Нет (обычно) | Да | Да | Да |
| POST | Отправить данные | Да | Да | Нет | Нет |
| PUT | Обновить/создать ресурс | Да | Да | Да | Нет |
Безопасный означает, что запрос не изменяет состояние сервера.
Идемпотентный означает, что многократное выполнение одного и того же запроса приводит к одному и тому же результату на сервере.