Ответ
HTTP статус-коды — это трехзначные числа, которые сервер возвращает в ответ на клиентский запрос. Они сгруппированы в пять классов по первой цифре.
| Класс | Описание | Ключевые примеры |
|---|---|---|
| 1xx (Информационные) | Запрос получен, процесс продолжается. | 100 Continue — сервер готов принять тело запроса. |
| 2xx (Успешные) | Запрос успешно обработан. | 200 OK — стандартный ответ для успешных запросов.201 Created — ресурс создан (часто после POST).204 No Content — успешно, но тело ответа отсутствует. |
| 3xx (Перенаправления) | Для завершения запроса требуются дальнейшие действия (часто — редирект). | 301 Moved Permanently — ресурс навсегда перемещен по новому URL.302 Found — ресурс временно доступен по другому адресу. |
| 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/users')
# Проверяем, что запрос успешен
assert response.status_code == 200, f'Ожидался статус 200, получен {response.status_code}'
# Или проверяем на успешный класс кодов (2xx)
assert response.ok == True Ответ 18+ 🔞
А, слушай, про эти цифры, которые сервер тебе в ответ плюёт! HTTP статус-коды, блядь. Трёхзначные такие циферки, которые как крик души сервера: «Всё окей, иди нахуй» или «Сам иди нахуй, я сломался».
Вот смотри, они по первой цифре на пять бандитских группировок делятся.
| Класс | Что означает, простыми словами | Самые яркие представители |
|---|---|---|
| 1xx (Информационные) | «Я твой запрос получил, не дёргай меня, ща думаю...» | 100 Continue — типа, «давай дальше шли, я готов принять твоё тело запроса, не стесняйся». |
| 2xx (Успешные) | «Всё заебись, братан, сделал, что просил!» | 200 OK — классика, «всё чётко, держи ответ».201 Created — «создал твою хуйню, вот тебе ссылочка» (обычно после POST).204 No Content — «сделал, но тебе нихуя не скажу, сам догадайся». |
| 3xx (Перенаправления) | «Не здесь ищи, дурачок, иди туда...» | 301 Moved Permanently — «ресурс съехал навсегда, запомни новый адрес, балда».302 Found — «он щас в другом месте, но это временно, не заливай». |
| 4xx (Ошибки клиента) | Вот тут внимание! Это твои косяки, ебанат. Сервер умный, а ты — нет. | 400 Bad Request — «что за хуйню ты мне прислал? Я даже разобрать не могу».401 Unauthorized — «предъяви пропуск, аноним».403 Forbidden — «пропуск есть, но в этот кабинет тебе низя, пошёл вон».404 Not Found — легенда! «То, что ты ищешь, я ебал в рот, его тут нет и не было». |
| 5xx (Ошибки сервера) | А вот это уже наши, серверные, позорные пиздецы. Мы обосрались, сорян. | 500 Internal Server Error — «ой, всё! У меня внутри что-то сломалось, сам в шоке».502 Bad Gateway — «я спросил у соседа, а он мне какую-то дичь ответил, я пас».503 Service Unavailable — «всех заебал, перегружен, иди погуляй, щас не могу». |
Ну и как это в коде проверить, чтоб не выглядеть идиотом:
import requests
response = requests.get('https://api.example.com/users')
# Тупо сравниваем с ожидаемым счастьем
assert response.status_code == 200, f'Ожидался статус 200, получен {response.status_code}'
# Или по-пацански: если код 2xx, то всё ок
assert response.ok == True
Вот и вся магия, ёпта. Запомни главное: 4xx — ты мудак, 5xx — мы мудаки. А 2xx — все молодцы, можно идти пить чай.