← Назад к вопросам

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

1.3 Junior🔥 211 комментариев
#API тестирование#Сети и протоколы

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI23 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Основные HTTP-методы (Verbs)

HTTP-методы определяют тип операции, которую нужно выполнить с ресурсом. Знание всех методов критично для автоматизации тестирования API и понимания семантики веб-приложений.

CRUD-операции

GET — получение данных

  • Безопасен (не изменяет состояние)
  • Идемпотентен
  • Не содержит тело запроса
  • Результат кэшируется

POST — создание новых ресурсов

  • Не идемпотентен
  • Содержит тело запроса
  • Возвращает 201 Created

PUT — полное обновление ресурса

  • Идемпотентен
  • Требует полное представление ресурса
  • Может создать ресурс, если его нет

DELETE — удаление ресурса

  • Идемпотентен
  • Возвращает 204 No Content
  • Обычно требует проверку прав доступа

Дополнительные методы

PATCH — частичное обновление

  • Применяет частичные изменения
  • Менее стандартизирован, чем PUT
  • Может быть идемпотентен

HEAD — как GET, но без тела ответа

  • Используется для проверки доступности ресурса
  • Возвращает только заголовки
  • Полезен для оптимизации (проверка Last-Modified)

OPTIONS — получение информации о методах

  • Возвращает доступные методы для ресурса
  • Используется в CORS preflight запросах
  • Помогает клиентам узнать, что поддерживает сервер

TRACE — диагностический метод

  • Возвращает копию запроса
  • Редко используется, часто отключён из соображений безопасности

Таблица безопасности и идемпотентности

МетодБезопасенИдемпотентенКэшируемТело
GETДаДаДаНет
HEADДаДаДаНет
OPTIONSДаДаНетНет
POSTНетНетНетДа
PUTНетДаНетДа
DELETEНетДаНетНет
PATCHНетЗависитНетДа
TRACEДаДаНетНет

Практическое применение в тестировании

При автоматизации API тестирования нужно:

  • Проверять, что методы используются правильно
  • Тестировать идемпотентность критичных операций
  • Валидировать коды ответов (200, 201, 204, 400, 404, 500)
  • Проверять OPTIONS для понимания доступных операций
  • Использовать HEAD для оптимизации тестов

Пример в Python (requests):

import requests

url = "https://api.example.com/users"

# GET
response = requests.get(url)
assert response.status_code == 200

# POST
data = {"name": "John", "email": "john@example.com"}
response = requests.post(url, json=data)
assert response.status_code == 201

# PUT
user_id = response.json()["id"]
response = requests.put(f"{url}/{user_id}", json={"name": "Jane"})
assert response.status_code == 200

# DELETE
response = requests.delete(f"{url}/{user_id}")
assert response.status_code == 204

Овладение HTTP-методами — основа компетентного автоматизатора тестирования.

Какие знаешь HTTP-методы? | PrepBro