Расскажите о статус-кодах HTTP.
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Статус-коды HTTP — это трехзначные числа, возвращаемые сервером в ответ на запрос клиента. Они указывают результат запроса и предоставляют информацию о том, как клиент должен обработать ответ.
Статус-коды делятся на пять классов:
- 1xx — Информационные: Запрос принят, продолжается обработка.
- 2xx — Успешные: Запрос успешно обработан.
- 3xx — Перенаправление: Для завершения запроса необходимы дальнейшие действия.
- 4xx — Ошибка клиента: Запрос содержит синтаксическую ошибку или не может быть выполнен.
- 5xx — Ошибка сервера: Сервер не смог выполнить корректный запрос.
Некоторые наиболее распространенные статус-коды:
| Код | Описание | Класс |
|---|---|---|
| 200 | OK | Успешные |
| 201 | Created | Успешные |
| 204 | No Content | Успешные |
| 301 | Moved Permanently | Перенаправление |
| 302 | Found | Перенаправление |
| 400 | Bad Request | Ошибка клиента |
| 401 | Unauthorized | Ошибка клиента |
| 403 | Forbidden | Ошибка клиента |
| 404 | Not Found | Ошибка клиента |
| 500 | Internal Server Error | Ошибка сервера |
| 503 | Service Unavailable | Ошибка сервера |
При тестировании API важно проверять корректные статус-коды в ответ на различные запросы (успешные, с ошибками валидации, с неверными данными и т.д.), чтобы убедиться в предсказуемом поведении системы.
Например, при создании ресурса ожидается 201, при успешном получении данных – 200, при запросе несуществующего ресурса – 404, при ошибке на сервере – 500.
Пример проверки статус-кода в автотесте (на Python с использованием requests):
import requests
url = "https://jsonplaceholder.typicode.com/posts/1"
response = requests.get(url)
# Проверка, что запрос вернул статус 200 OK
assert response.status_code == 200