Коды ответов HTTP: что означают и как проверять

Язык, на котором браузер разговаривает с сервером. Разбираем структуру запроса и учимся читать коды ответов. С тренажёром.

Всё, что происходит между браузером и сервером, — это запросы и ответы по протоколу HTTP. Умение их читать превращает тестировщика из «пользователя с чек-листом» в человека, который понимает, где сломалось.

Структура запроса

Структура ответа

HTTP/1.1 201 Created                ← код и его расшифровка
Content-Type: application/json
Location: /api/orders/5002

{"id": 5002, "status": "new", "total": 15980}

Методы

МетодСмыслМеняет данныеПовтор безопасен
GETПолучитьНетДа
POSTСоздать / выполнить действиеДаНет
PUTЗаменить целикомДаДа
PATCHИзменить частичноДаОбычно да
DELETEУдалитьДаДа (второй раз — 404)
🎯 Проверка, которая находит дефекты постоянно

Повторите POST-запрос дважды (кнопка Retry в DevTools или повторная отправка формы). Если создались два одинаковых заказа — у продукта нет защиты от дублей. Это Critical: пользователю спишут деньги дважды.

Коды ответов

⚠️ 5xx — это всегда дефект

Даже если вы отправили «дурацкие» данные. Сервер обязан отвечать понятной ошибкой 4xx, а не падать. Ответ 500 на кривой ввод — законный баг, и его не должен закрывать аргумент «так никто делать не будет».

Тренажёр: коды ответов

🎯 Этот тренажёр есть в курсе

Практическая часть урока выполняется в браузере с проверкой результата. Попробовать бесплатно: тренажёр по вёрстке или зарегистрируйтесь — откроются уроки и тренажёры курса.

Заголовки, которые встречаются постоянно

Что проверять на уровне HTTP

  1. Правильный ли метод для действия (создание — POST, а не GET).
  2. Приходит ли корректный код ответа в каждом сценарии, включая ошибки.
  3. Есть ли в ответе понятное описание ошибки (не только код).
  4. Работают ли запросы без авторизации и с чужим токеном — что вернётся.
  5. Что произойдёт при повторе, при параллельной отправке, при обрыве соединения.
  6. Не уходят ли в запросах лишние данные: пароли в открытом виде, чужие идентификаторы.

Это урок из курса «Ручной тестировщик»

В курсе 47 уроков и 36 тренажёров: тест-дизайн, вёрстка и UX, DevTools, API, SQL, Git и работа со стендом. Несколько уроков открыты бесплатно после регистрации.

Открыть бесплатные уроки Программа курса