Встречается на 32% собеседований по QA Manual

Какие знаешь методы HTTP

HTTP-методы — это стандартные команды протокола HTTP, которые клиент отправляет серверу, чтобы указать желаемое действие над ресурсом. Основные методы: GET, POST, PUT, PATCH, DELETE, HEAD и OPTIONS. Они лежат в основе REST API и используются для реализации CRUD-операций.

Основные методы

МетодНазначениеПример использования
GETПолучение данных без изменения состояния сервераЗапрос списка пользователей
POSTСоздание нового ресурсаДобавление нового пользователя
PUTПолное обновление существующего ресурсаЗамена всех данных пользователя
PATCHЧастичное обновление ресурсаИзменение только имени пользователя
DELETEУдаление ресурсаУдаление пользователя
HEADАналогичен GET, но возвращает только заголовкиПроверка существования ресурса без тела ответа
OPTIONSПолучение информации о поддерживаемых методах для ресурсаОпределение доступных операций для конечной точки

Свойства методов

Методы HTTP характеризуются двумя важными свойствами:

  • Безопасность: метод не изменяет состояние сервера. Безопасными считаются GET, HEAD и OPTIONS.
  • Идемпотентность: повторное выполнение метода даёт тот же результат, что и первое. Идемпотентными являются GET, PUT, DELETE, HEAD и OPTIONS. POST и PATCH не идемпотентны, так как повторный вызов может создать несколько ресурсов или изменить данные несколько раз.

Пример тестирования API на Python

Для тестирования API часто используется библиотека requests. Примеры вызовов основных методов:

python
import requests

# GET — получение данных
response = requests.get('https://api.example.com/users')

# POST — создание ресурса
response = requests.post('https://api.example.com/users', json={'name': 'John'})

# PUT — полное обновление
response = requests.put('https://api.example.com/users/1', json={'name': 'Jane'})

# PATCH — частичное обновление
response = requests.patch('https://api.example.com/users/1', json={'name': 'Jane'})

# DELETE — удаление
response = requests.delete('https://api.example.com/users/1')

Подводные камни

  • Не путать PUT и PATCH: PUT заменяет ресурс целиком, PATCH — только указанные поля.
  • POST не идемпотентен: повторная отправка создаст дубликат. Это важно учитывать при написании тестов.
  • HEAD полезен для проверки доступности ресурса без загрузки тела ответа, что экономит трафик.
  • OPTIONS используется для CORS-запросов и позволяет узнать, какие методы разрешены для конкретного URL.

Коротко

  • Основные методы: GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS.
  • GET, HEAD, OPTIONS — безопасны; GET, PUT, DELETE, HEAD, OPTIONS — идемпотентны.
  • PUT — полное обновление, PATCH — частичное.
  • В тестах API используйте библиотеку requests для вызова методов и проверки статус-кодов и тела ответа.
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы