Sobes.tech
Назад к вопросам
Junior — Middle
68

Можете объяснить, какие существуют основные методы протокола HTTP и их назначение?

Компании, где спрашивали
IBS

Ответ от нейросети

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 важно проверять не только статус-коды, но и бизнес-эффект метода: создан ли ресурс, изменился ли он, удалился ли он.