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

«Какие классы и примеры HTTP-кодов состояния существуют?» — вопрос из категории HTTP и веб-протоколы, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

HTTP-коды состояния (Status Codes) сгруппированы в 5 классов по первой цифре:

1xx: Информационные

  • 100 Continue — сервер готов принять тело запроса.

2xx: Успешные

  • 200 OK — стандартный успешный ответ.
  • 201 Created — запрос выполнен, новый ресурс создан.
  • 204 No Content — запрос выполнен, но в ответе нет тела.

3xx: Перенаправления

  • 301 Moved Permanently — ресурс навсегда перемещен по новому URL.
  • 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()
else:
    print(f"Request failed with status: {response.status_code}")