← Назад к вопросам
Какие знаешь 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-методами — основа компетентного автоматизатора тестирования.