Самое
{"error": "server exploded"}Это буквально ложь в лицо фронтенду.
Статус-код — это первый и самый быстрый фильтр, по которому система понимает, стоим мы еще на ногах или пора запускать сценарий спасения. Если ты возвращаешь «Окей» там, где всё сгорело, ты заставляешь фронтенд парсить каждый JSON просто чтобы узнать, не случилась ли беда. Это быстро превращается в хаос.
Глобально все ответы сервера делятся на пять категорий, но в ежедневной разработке мы живем в четырех. Первая — это 1xx (handshake), технические протокольные вещи, в которые новичку лезть не обязательно. А вот дальше начинается база.
Счастье и переезды: 2xx и 3xx
👌 200 OK — наш идеал. Этот статус означает, что вся цепочка логики под капотом отработала ровно так, как задумывал инженер. Никаких эксепшенов, база ответила, данные валидны.
Когда система эволюционирует, ресурсы начинают мигрировать. Для этого есть 301 и 302 статусы — редиректы. 301 Moved Permanently — это «мы переехали навсегда», забудь старый адрес. 302 Found — «мы тут временно ремонт делаем, постучись пока по этой ссылке».
Это нужно, когда вы переименовываете эндпоинты или статьи, чтобы старые ссылки из поисковиков не превращались в тыкву, а прозрачно перебрасывали пользователя куда нужно.
Клиентские косяки: Группа 4xx
Тут сервер выступает в роли строгого фейсконтрольщика. Если прилетает 4xx — значит, проблема в самом запросе.
➖ 401 Unauthorized: Ты не показал паспорт. Сервер не понимает, кто ты такой. Либо ты не передал токен, либо твой логин/пароль — не правильные.
➖ 403 Forbidden: Самый тонкий момент. Сервер узнал тебя в лицо, паспорт проверен, но он говорит: «Я знаю, что ты — Свят, но в эту админку тебе заходить нельзя». У тебя просто нет прав на этот конкретный ресурс. Иди проси разрешения у администратора.
➖ 404 Not Found: Классика. Ресурс не найден. Это не обязательно «страница 404», это может быть попытка загрузить картинку, которой не существует, или опечатка в URL адресе API.
Когда бэкенд «посыпался»: Группа 5xx
Это категория боли. 500 Internal Server Error означает, что на сервере что-то пошло не так, и он просто упал в конвульсиях. Здесь фронтенд бессилен — он не знает, почему всё сломалось. Чтобы разобраться, инженеру нужно лезть в логи сервера и смотреть, на какой строчке кода всё «бахнуло». Есть еще мерзкая 503 Service Unavailable, когда гейтвей или балансировщик не может достучаться до сервиса, но это уже вопросы к инфраструктуре.
💡 Статус-код — это триггер для фронтенда. Если пришла «четверка» или «пятерка», фронт даже не пытается парсить данные для отрисовки интерфейса, он сразу уходит в ветку обработки ошибки, показывает алерт или страницу-заглушку. Это экономит ресурсы и делает систему предсказуемой.
Список всех статус кодов с объяснениями что они обозначают всегда можно подсмотреть в документации MDN. Полезно переодически перечитывать их, потому что список кодов регулярно обновляется.
😉 Главное, не будьте теми, кто маскирует пожар под «200 OK».
Если что-то всё ещё звучит запутанно — пиши вопросы в комментах, я обязательно отвечу. А если всё разложилось по полочкам — ставь 🔥, так я пойму, что пост был полезен
10МДК
