Основные HTTP-коды состояния и ошибок

При взаимодействии с веб-ресурсами мы нередко сталкиваемся с различными кодами HTTP-ошибок. Эти коды предоставляют важную информацию о состоянии соединения между клиентом и сервером. Понимание значений каждого кода позволяет эффективно диагностировать и устранять возникающие проблемы.
HTTP-коды состояния — это трехзначные числа, предоставляемые сервером в ответ на запрос клиента. Каждый код описывает конкретный сценарий обработки запроса, будь то успех, перенаправление или ошибка.
Разделение по категориям
| Класс | Диапазон | Значение |
| Informational | 1xx | Запрос принимается и обрабатывается |
| Success | 2xx | Запрос успешно обработан |
| Redirect | 3xx | Требуется дополнительный запрос |
| Client Error | 4xx | Ошибка возникла на стороне клиента |
| Server Error | 5xx | Ошибка возникла на стороне сервера |
Основные HTTP-коды и из значения
Давайте рассмотрим наиболее распространенные HTTP-коды и их интерпретацию.
| Код | Значение | Пример использования |
Информационные коды (1xx) | ||
| 100 Continue | Продолжайте, сервер готов принять полный запрос | Отправка крупных файлов |
| 101 Switching Protocols | Сервер согласился переключиться на другой протокол | Переход с HTTP на WebSocket |
| 102 Processing | Запрос принят, но обработка займёт долгое время | Длительная обработка данных |
| 103 Early Hints | Ранние подсказки от сервера перед полным ответом | Оптимизация загрузки ресурсов |
Успех (2xx) | ||
| 200 OK | Запрос успешно обработан | Обычная загрузка веб-страниц |
| 201 Created | Новый ресурс успешно создан | Создание нового аккаунта |
| 202 Accepted | Запрос принят в обработку, но не завершён | Долгосрочная задача в очереди |
| 203 Non-Authoritative Information | Информация предоставлена не из оригинального источника | Использование кеша |
| 204 No Content | Запрос успешен, но ответ пустой | Удаление элемента через API |
| 205 Reset Content | Сбросить содержимое формы после успешной отправки | Формы обратной связи |
| 206 Partial Content | Возвращена лишь часть данных | Скачивание больших файлов частями |
| 207 Multi-Status | Несколько результатов для одной операции | Протокол WebDAV |
| 226 IM Used | Использованы расширенные механизмы представления | Дельта-кодирование в HTTP |
Перенаправления (3xx) | ||
| 300 Multiple Choices | Множественный выбор ресурсов | Предоставление выбора формата контента |
| 301 Moved Permanently | Ресурс перемещён навсегда | Постоянное изменение URL |
| 302 Found | Ресурс временно доступен по другому URL | Тестирование альтернативных версий сайта |
| 303 See Other | Используйте другой URL для получения результата | Безопасное перенаправление после POST-запросов |
| 304 Not Modified | Содержимое не изменилось с момента последнего запроса | Кэшированная версия актуальна |
| 305 Use Proxy | Нужно использовать прокси-сервер | Аутентификация через корпоративный прокси |
| 307 Temporary Redirect | Временное перенаправление с сохранением метода запроса | Техобслуживание ресурса |
| 308 Permanent Redirect | Постоянное перенаправление с сохранением метода запроса | Окончательное изменение URL |
Ошибки клиента (4xx) | ||
| 400 Bad Request | Некорректный запрос | Форма заполнена с ошибками |
| 401 Unauthorized | Необходимо пройти аутентификацию | Попытка доступа к закрытым ресурсам |
| 402 Payment Required | Нужна оплата для доступа к ресурсу | Платёжные сервисы |
| 403 Forbidden | Доступ запрещён | Отсутствие достаточных прав |
| 404 Not Found | Запрашиваемый ресурс не найден | Несуществующая страница |
| 405 Method Not Allowed | Метод запроса не предусмотрен для ресурса | Неправильное использование HTTP-глагола |
| 406 Not Acceptable | Контент не соответствует требованиям клиента | Не подходит формат данных |
| 407 Proxy Authentication Required | Необходима аутентификация прокси-сервера | Авторизация корпоративных сетей |
| 408 Request Timeout | Время ожидания запроса истекло | Медленное подключение к интернету |
| 409 Conflict | Возник конфликт при обработке запроса | Конкурирующие изменения ресурса |
| 410 Gone | Ресурс удалён безвозвратно | Удалённая страница |
| 411 Length Required | Обязательна передача длины тела запроса | Загрузка файлов без указания размера |
| 412 Precondition Failed | Одно из предварительных условий не выполнено | Нарушение целостности данных |
| 413 Payload Too Large | Полезная нагрузка запроса слишком больша | Передача огромных файлов |
| 414 URI Too Long | URL запроса слишком длинный | Длинные URL-параметры |
| 415 Unsupported Media Type | Тип данных не поддерживается сервером | Файл неправильного формата |
| 416 Range Not Satisfiable | Запрошенный диапазон недопустим | Чтение вне границ файла |
| 417 Expectation Failed | Невозможно удовлетворить ожидаемое условие | Нет поддержки заголовка Expect |
| 418 I’m a Teapot | Шутливая ошибка (чайник) | Юмористическое уведомление |
| 421 Misdirected Request | Запрос направлен на неправильный сервер | Проблема с балансировкой нагрузки |
| 422 Unprocessable Entity | Логическая ошибка в запросе | Инвалидация данных. |
| 423 Locked | Ресурс заблокирован | Совместное редактирование файла |
| 424 Failed Dependency | Один из зависимых запросов завершился неудачей | Отказ другой системы |
| 425 Too Early | Запрос поступил слишком рано | Повтор запроса до окончания блокировки |
| 426 Upgrade Required | Необходимо обновить протокол | Поддержка новых стандартов |
| 428 Precondition Required | Необходимы предварительные условия | Проверка синхронизации данных |
| 429 Too Many Requests | Слишком много запросов | Лимиты скорости запросов |
| 431 Request Header Fields Too Large | Поля заголовка запроса слишком велики | Большое количество мета-данных |
| 451 Unavailable For Legal Reasons | Доступ ограничен юридическими обстоятельствами | Блокировки контента по закону |
Ошибки сервера (5xx) | ||
| 500 Internal Server Error | Общая внутренняя ошибка сервера | Программные баги |
| 501 Not Implemented | Метод запроса не поддерживается сервером | Незнакомый HTTP-глагол |
| 502 Bad Gateway | Получен неверный ответ от вышестоящего сервера | Неправильная работа промежуточного сервиса |
| 503 Service Unavailable | Сервис временно недоступен | Перегрузка сервера |
| 504 Gateway Timeout | Вышестоящий сервер не ответил вовремя | Проблемы с прокси или шлюзом |
| 505 HTTP Version Not Supported | Текущая версия HTTP не поддерживается | Старый клиент общается с новым сервером |
| 506 Variant Also Negotiates | Циклическая ссылка при выборе ресурса | Ошибка настройки сервера |
| 507 Insufficient Storage | Недостаточное пространство для сохранения данных | Недостаточно памяти для записи |
| 508 Loop Detected | Обнаружен циклический запрос | Рекурсивные перенаправления |
| 510 Not Extended | Требуются дополнительные расширения | Специфичные требования клиента |
| 511 Network Authentication Required | Необходима сетевая аутентификация | Подключение к публичным сетям Wi-Fi |
Помимо этих кодов существуют дополнительные, которые используются отдельными платформами и производителями серверного ПО, такими как Cloudflare, Nginx и другие
RFC 9110
Более подробно все коды состояний определены в RFC 9110.



