100ContinueПродолжайте
Сервер получил начальные заголовки запроса, клиент должен продолжить отправку оставшейся части тела (например, после Expect: 100-continue).
101Switching ProtocolsПереключение протоколов
Сервер согласен переключить протокол по запросу клиента (например, на WebSocket).
102ProcessingОбработка
WebDAV. Сервер принял запрос и обрабатывает, но обработка ещё не завершена.
103Early HintsРанние подсказки
Используется с заголовком Link для предзагрузки ресурсов до получения финального ответа.
200OKУспешно
Стандартный успешный ответ для GET, PUT, POST, DELETE. Содержит запрошенные данные.
201CreatedСоздано
Ресурс успешно создан (обычно после POST). Header Location указывает на новый ресурс.
202AcceptedПринято
Запрос принят к обработке, но обработка ещё не завершена. Используется для асинхронных операций.
203Non-Authoritative InformationНе авторитетная информация
Возвращается успешно, но информация может быть из локального или стороннего источника, не оригинального.
204No ContentНет содержимого
Запрос успешен, но в ответе нет тела. Часто после DELETE или PUT.
205Reset ContentСбросить содержимое
Сервер требует от клиента сбросить документ (например, очистить форму).
206Partial ContentЧастичное содержимое
Возвращается часть ресурса по запросу с заголовком Range. Используется для возобновления загрузок и стриминга видео.
300Multiple ChoicesМножественный выбор
Запрашиваемый ресурс имеет несколько представлений, клиент должен выбрать одно.
301Moved PermanentlyПеремещён навсегда
Ресурс окончательно перемещён на новый URL (Location header). Поисковые системы обновят свою базу. Используйте для миграции URL.
302FoundНайдено (временный)
Ресурс временно по другому URL. В отличие от 301, метод запроса может быть изменён клиентом. Для строгой временной редиректа используйте 307.
303See OtherСмотреть другое
После POST клиент должен сделать GET по Location. Полезно после отправки формы (POST/Redirect/GET pattern).
304Not ModifiedНе изменён
Ресурс не изменён с момента последнего запроса (по If-Modified-Since или If-None-Match). Клиент использует кэш.
307Temporary RedirectВременный редирект
Как 302, но метод запроса (POST/PUT) сохраняется. Безопаснее 302 для не-GET запросов.
308Permanent RedirectПостоянный редирект
Как 301, но метод запроса сохраняется. Используйте вместо 301 если нужно сохранить POST/PUT.
400Bad RequestНеверный запрос
Сервер не понимает запрос: невалидный синтаксис, отсутствуют обязательные параметры, неверный JSON.
401UnauthorizedНе авторизован
Требуется аутентификация. Несмотря на название, означает «не аутентифицирован». Сервер вернёт WWW-Authenticate header.
402Payment RequiredТребуется оплата
Зарезервирован для будущего использования. Иногда используется для платных API.
403ForbiddenЗапрещено
Клиент аутентифицирован, но не имеет прав на ресурс. В отличие от 401, повторная аутентификация не поможет.
404Not FoundНе найдено
Ресурс не существует на сервере. Самая частая ошибка. Может означать также скрытие 403 от неавторизованных пользователей.
405Method Not AllowedМетод не разрешён
URL существует, но HTTP-метод (GET/POST/PUT/DELETE) не поддерживается. Сервер вернёт Allow header.
406Not AcceptableНеприемлемо
Сервер не может предоставить ресурс в формате из Accept header клиента.
407Proxy Authentication RequiredТребуется аутентификация прокси
Как 401, но для прокси-сервера. Клиент должен аутентифицироваться через прокси.
408Request TimeoutТайм-аут запроса
Сервер не дождался полного запроса от клиента. Клиент может повторить запрос.
409ConflictКонфликт
Запрос противоречит текущему состоянию ресурса. Например, попытка обновить устаревшую версию.
410GoneУдалён
Ресурс был, но удалён навсегда. В отличие от 404 — намеренная пометка «больше нет и не будет».
411Length RequiredТребуется длина
Сервер требует Content-Length header. Клиент должен указать длину тела запроса.
412Precondition FailedПредварительное условие неверно
Условие в If-Match / If-None-Match не выполнено. Используется для optimistic locking.
413Payload Too LargeСлишком большое тело
Тело запроса превышает лимит сервера (часто файл upload). Раньше назывался Request Entity Too Large.
414URI Too LongURI слишком длинный
URL слишком длинный. Обычно лимит 2048 символов в браузерах, до 8192 на серверах.
415Unsupported Media TypeНеподдерживаемый тип
Content-Type запроса не поддерживается. Например, отправили XML, а сервер ждёт JSON.
418I'm a teapotЯ чайник
Шуточный код из RFC 2324 (1998). Сервер — чайник, не может варить кофе. Иногда используется как cute easter egg или для bot-detection.
422Unprocessable EntityНевозможно обработать
WebDAV. Запрос правильный синтаксически, но данные семантически неверны (валидация формы провалена).
429Too Many RequestsСлишком много запросов
Клиент отправил слишком много запросов за единицу времени. Используется для rate limiting. Retry-After header указывает когда повторить.
451Unavailable For Legal ReasonsНедоступно по юридическим причинам
Контент заблокирован по решению суда / Роскомнадзора / DMCA. Название отсылает к роману Брэдбери «451 градус по Фаренгейту».
500Internal Server ErrorВнутренняя ошибка сервера
Общая ошибка сервера, без подробностей. Обычно — bug в коде или проблема с БД. Самый «непонятный» код для отладки.
501Not ImplementedНе реализовано
Сервер не поддерживает функционал для обработки запроса. Например, HTTP-метод PROPFIND, который сервер не умеет.
502Bad GatewayПлохой шлюз
Прокси/балансировщик получил невалидный ответ от upstream-сервера. Например, Nginx не смог достучаться до приложения.
503Service UnavailableСервис недоступен
Сервер временно недоступен (перегрузка, обслуживание). Retry-After header — когда вернётся.
504Gateway TimeoutТайм-аут шлюза
Прокси не дождался ответа от upstream в установленный лимит. Часто из-за медленного приложения.
505HTTP Version Not SupportedВерсия HTTP не поддерживается
Сервер не поддерживает версию HTTP-протокола из запроса.
507Insufficient StorageНедостаточно места
WebDAV. Сервер не может сохранить ресурс из-за нехватки места.
508Loop DetectedОбнаружен цикл
WebDAV. Сервер обнаружил бесконечный цикл при обработке запроса.
511Network Authentication RequiredТребуется аутентификация сети
Используется на captive porthals (отельный Wi-Fi) — клиент должен авторизоваться в сети перед доступом в интернет.