> For the complete documentation index, see [llms.txt](https://kaze.gitbook.io/qa-theory/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kaze.gitbook.io/qa-theory/web/okharakterizuite-kazhdyi-klass-status-code-1khkh-2xx-3xx-4xx-5xx-..md).

# Охарактеризуйте каждый класс status code (1хх; 2xx; 3xx; 4xx; 5xx).

HTTP-статус коды делятся на пять классов, каждый из которых показывает общий результат обработки запроса сервером.

***

### 1️⃣ 1xx — Информационные

* **Что означает:** Сервер принял запрос и продолжает обработку.
* **Примеры:**
  * `100 Continue` — клиент может продолжать отправку тела запроса.
  * `101 Switching Protocols` — сервер переключается на другой протокол (например, WebSocket).
* **Особенности:** Редко встречаются в реальном использовании, больше для протокольных целей.

***

### 2xx — Успешные

* **Что означает:** Запрос успешно обработан.
* **Примеры:**
  * `200 OK` — стандартный успешный ответ.
  * `201 Created` — ресурс успешно создан.
  * `204 No Content` — успешный запрос, но тело ответа отсутствует.
* **Использование:** Всегда проверяем при функциональном тестировании API.

***

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

* **Что означает:** Для завершения запроса клиент должен выполнить дополнительное действие (например, перейти по другому URL).
* **Примеры:**
  * `301 Moved Permanently` — ресурс перемещён навсегда.
  * `302 Found` — временное перенаправление.
  * `304 Not Modified` — ресурс не изменился, можно использовать кеш.
* **Использование:** В API встречается редко, чаще в веб-приложениях.

***

### 4xx — Ошибки клиента

* **Что означает:** Запрос некорректен или клиент не имеет прав.
* **Примеры:**
  * `400 Bad Request` — синтаксическая ошибка в запросе.
  * `401 Unauthorized` — требуется аутентификация.
  * `403 Forbidden` — доступ запрещён.
  * `404 Not Found` — ресурс не найден.
  * `422 Unprocessable Entity` — валидный запрос, но сервер не может обработать данные (например, нарушены правила).
* **Использование:** Проверяем обработку некорректных запросов.

***

### 5xx — Ошибки сервера

* **Что означает:** Сервер не смог выполнить корректный запрос из-за внутренней ошибки.
* **Примеры:**
  * `500 Internal Server Error` — общая внутренняя ошибка.
  * `502 Bad Gateway` — шлюз получил неверный ответ от сервера.
  * `503 Service Unavailable` — сервис временно недоступен (например, на обслуживании).
  * `504 Gateway Timeout` — таймаут при обращении к внешнему серверу.
* **Использование:** В тестировании проверяем устойчивость API к сбоям.
