ENIGMA AI
ENIGMA AI
QA Легкий

Какие HTTP-методы существуют? Что такое идемпотентность?

HTTP-методы и идемпотентность

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

Метод Назначение Тело запроса Идемпотентный
GET Получить ресурс Нет Да
POST Создать ресурс Да Нет
PUT Заменить ресурс Да Да
PATCH Частично изменить Да Нет*
DELETE Удалить ресурс Нет Да
HEAD Получить headers Нет Да
OPTIONS Получить опции Нет Да

Идемпотентность

Определение: Многократное выполнение даёт тот же результат.

Идемпотентный:
PUT /users/1 {name: "Alice"}
# 1 раз: user.name = "Alice"
# 10 раз: user.name = "Alice"  (тот же результат)

DELETE /users/1
# 1 раз: пользователь удалён
# 10 раз: тот же результат (user не существует)

НЕ идемпотентный:
POST /orders {item: "book"}
# 1 раз: создан 1 заказ
# 10 раз: создано 10 заказов!

GET vs POST:

GET /users?id=1
- Получение данных
- Параметры в URL
- Кэшируется
- Идемпотентный
- Безопасный (не меняет данные)

POST /users
- Создание данных
- Тело запроса
- Не кэшируется
- Не идемпотентный

PUT vs PATCH:

PUT /users/1
{
    "name": "Alice",
    "email": "alice@mail.com",
    "age": 30
}
# Полная замена — все поля обязательны

PATCH /users/1
{
    "email": "new@mail.com"
}
# Частичное обновление — только изменяемые поля

Коды ответов:

2xx — Успех
  200 OK
  201 Created
  204 No Content

3xx — Редирект
  301 Moved Permanently
  302 Found
  304 Not Modified

4xx — Ошибка клиента
  400 Bad Request
  401 Unauthorized
  403 Forbidden
  404 Not Found
  409 Conflict

5xx — Ошибка сервера
  500 Internal Server Error
  502 Bad Gateway
  503 Service Unavailable

Safe vs Idempotent:

Метод Safe Idempotent
GET Да Да
POST Нет Нет
PUT Нет Да
DELETE Нет Да

Safe — не изменяет состояние сервера
Idempotent — повторный вызов не меняет результат

Похожие вопросы

Готовитесь к собеседованию?

ENIGMA AI — невидимый ИИ-помощник для технических интервью

Попробовать бесплатно
Все вопросы