Вопрос проверяет базовое понимание HTTP-протокола и назначение различных типов запросов.
Основные HTTP-методы — это GET, POST, PUT, PATCH и DELETE. Каждый метод определяет, какое действие клиент хочет выполнить над ресурсом. Методы отличаются семантикой, а не только наличием тела запроса. Сервер обрабатывает запрос по-разному в зависимости от метода. Правильный выбор метода важен для корректного API.
HTTP-методы описывают намерение клиента, а не техническую реализацию запроса.
HTTP-метод — это часть HTTP-запроса, которая указывает, какое действие нужно выполнить над ресурсом.
Метод для получения данных.
Особенности:
не изменяет состояние сервера
параметры обычно передаются в URL
может кэшироваться
Пример:
GET /users/42 HTTP/1.1
Метод для создания ресурса или выполнения операции.
Особенности:
изменяет состояние сервера
данные передаются в body
не идемпотентен
Пример:
POST /users HTTP/1.1
Метод для полного обновления ресурса.
Особенности:
заменяет ресурс целиком
идемпотентен
требует передачи всей модели
Пример:
PUT /users/42 HTTP/1.1
Метод для частичного обновления ресурса.
Особенности:
обновляет только часть данных
менее строгий, чем PUT
чаще используется в мобильных API
Пример:
PATCH /users/42 HTTP/1.1
Метод для удаления ресурса.
Особенности:
удаляет ресурс
идемпотентен
может не иметь body
Пример:
DELETE /users/42 HTTP/1.1
Неправильный выбор HTTP-метода:
ломает REST-контракты
усложняет поддержку API
вызывает проблемы с кэшем и прокси
HTTP-методы — это язык общения клиента и сервера. Они описывают смысл операции, а не просто способ передачи данных.