Можете объяснить, какие существуют основные методы протокола HTTP и их назначение?
Ответ от нейросети
sobes.tech AI
Что хотят услышать интервьюеры:
HTTP-методы описывают, какое действие клиент хочет выполнить над ресурсом. Важно понимать основные методы, их типичное назначение и отличия между безопасными, идемпотентными и изменяющими состояние запросами. Для QA полезно знать, как эти методы проявляются в API и что проверять в ответах сервера.
Определение:
HTTP-метод — это часть запроса, которая указывает серверу, что нужно сделать с ресурсом по URL. Основные методы используются для чтения данных, создания, изменения, удаления и служебных операций. На практике чаще всего встречаются GET, POST, PUT, PATCH, DELETE, а также HEAD и OPTIONS.
GET— получить данные.POST— создать новый ресурс или запустить обработку.PUT— полностью заменить ресурс или создать его по известному адресу.PATCH— частично изменить ресурс.DELETE— удалить ресурс.HEAD— какGET, но без тела ответа.OPTIONS— узнать, какие методы поддерживает сервер для ресурса.
Пример использования:
Например, в API интернет-магазина:
GET /products/10— получить карточку товара.POST /products— создать новый товар.PUT /products/10— полностью обновить товар с id 10.PATCH /products/10— изменить только цену или название.DELETE /products/10— удалить товар.
GET /products/10 HTTP/1.1
Host: api.shop.com
POST /products HTTP/1.1
Host: api.shop.com
Content-Type: application/json
{
"name": "Keyboard",
"price": 99
}
PATCH /products/10 HTTP/1.1
Host: api.shop.com
Content-Type: application/json
{
"price": 89
}
Пояснение кода:
Код показывает три типовых сценария работы с ресурсом.
GET /products/10запрашивает данные о товаре и не должен менять состояние на сервере.POST /productsотправляет JSON с данными нового товара, сервер обычно создает новый объект и возвращает его идентификатор.PATCH /products/10передает только изменяемое полеprice, не затрагивая остальные поля товара.
Для QA здесь важно проверить:
- статус-код ответа;
- корректность тела ответа;
- изменение данных после
POST,PUT,PATCH,DELETE; - повторный вызов идемпотентных методов и ожидаемый результат.
Ключевые моменты:
GETиспользуется для чтения,POST— для создания,PUT— для полной замены,PATCH— для частичного изменения,DELETE— для удаления.GET,PUT,DELETEобычно считают идемпотентными: повторный запрос не должен менять итоговый результат по-новому.POSTобычно неидемпотентен: повторная отправка может создать несколько одинаковых ресурсов.GETне должен менять состояние системы, аHEADвозвращает только заголовки без тела.OPTIONSпомогает понять, какие методы доступны для ресурса и часто используется в CORS.- Для тестирования API важно проверять не только статус-коды, но и бизнес-эффект метода: создан ли ресурс, изменился ли он, удалился ли он.