Ответ
HTTP статус-коды — это трёхзначные числовые коды в ответе сервера, которые указывают на результат обработки HTTP-запроса. Первая цифра определяет класс ответа.
Группы (классы) статус-кодов:
| Класс | Описание | Примеры |
|---|---|---|
| 1xx (Информационные) | Запрос получен, процесс продолжается. Уведомление для клиента. | 100 Continue, 101 Switching Protocols |
| 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 |
| 5xx (Ошибки сервера) | Сервер не смог выполнить корректный запрос из-за внутренней ошибки. | 500 Internal Server Error, 502 Bad Gateway, 503 Service Unavailable |
Практическое использование (Python с библиотекой requests):
import requests
response = requests.get('https://api.example.com/data')
# Проверка успешности запроса
if response.status_code == 200:
data = response.json()
print('Успех:', data)
elif response.status_code == 404:
print('Ошибка: Ресурс не найден (404)')
elif response.status_code >= 500:
print(f'Ошибка сервера: {response.status_code}')
else:
print(f'Неожиданный статус: {response.status_code}')
# Удобный метод для проверки кодов 4xx/5xx
if response.ok: # Эквивалентно 200 <= response.status_code < 400
print('Запрос успешен')
Важность для тестирования: При тестировании API необходимо проверять не только успешные сценарии (2xx), но и корректность возвращаемых кодов ошибок (4xx, 5xx) для некорректных данных или отсутствующих прав.