👋
Привет, сетевой друг!
Разбираем по классам HTTP коды. Ведь каждый раз, когда браузер или клиент получает ответ, первое что читается - трёхзначный код. По нему уже понятно, что произошло.🟣1xx: в реальной жизни почти не видны, но 101 встречается часто при работе с WebSocket. Клиент отправляет обычный HTTP-запрос с заголовком Upgrade, сервер соглашается и соединение переключается в двусторонний режим. Потом HTTP уже не используется.
🟣2xx: всё хорошо, запрос выполнен. 200 это базовый успех с телом ответа. 201 возвращают когда ресурс создан, обычно сюда же кладут сам объект. 204 говорит что выполнили но отдавать нечего, типичный ответ на DELETE. 206 используется при скачивании файлов по частям, именно так работают докачка и стриминг видео.
🟣3xx: ресурс не здесь. 301 означает переехал навсегда, браузер закэширует новый адрес и старый больше дёргать не будет. 304 говорит что у клиента уже актуальная версия в кэше, гнать данные повторно смысла нет. 307 и 308 работают как временный и постоянный редирект, но с гарантией что метод запроса не изменится, это важно для POST.
🟣4xx: ошибка на стороне клиента. Важно не путать 401 и 403: первый про аутентификацию (нет токена или невалидный), второй про авторизацию (токен есть, прав нет). 409 возникает при конфликте состояния, например когда пользователь с таким email уже существует.
🟣5xx: что-то сломалось на сервере. 500 - необработанное исключение. 502 обычно говорит о проблемах за nginx, апстрим вернул что-то невалидное. 503 - сервис недоступен. 504 - апстрим не ответил вовремя.
Серверная Админа | Zeroday | #HTTP
