• Информация на сайте предоставляется «как есть», может содержать неточности и не является консультацией или офертой.
  • Перед использованием проконсультируйтесь со специалистом.

Используя сайт, вы подтверждаете, что вы изучили и согласны с документами Политика конфиденциальности и обработки персональных данныхи Пользовательское соглашение.

Сайт использует cookies для работы и сбора аналитики. Вы можете принять или настроить их, а также полностью отключить в настройках браузера.

Настройки cookies
Необходимые для работы веб-сайта

Используются для входа, навигации и защиты (например: sessionid, csrftoken). Без них сайт может работать с перебоями.

Помогают улучшить сайт, собирая статистику посещений (например, через Яндекс Метрику).

Используются для показа персонализированной рекламы и ретаргетинга в рекламных сетях.

Настройки интерфейса

Декоративный эффект свечения при клике по странице.

DEV -
PROGRAM.RU
Контакты

Коды состояния HTTP: 200, 301, 400, 401, 404, 500

Что такое статус ответа HTTP и что означает? Разбираем группы 1xx–5xx, популярные коды 200, 201, 301, 400, 401, 403, 404, 500 с примерами

HTTP-кодов состояния

При взаимодействии клиента и сервера важно не только передать запрос и получить ответ, но и понять результат его обработки.

Для понимания ответа в HTTP предусмотрены специальные коды состояния.

Что такое коды состояния HTTP

Коды состояния или статус ответа в HTTP (HTTP Status Codes) это трёхзначные числовые значения, которые сервер возвращает клиенту в HTTP-ответе для обозначения результата обработки запроса.

Каждый код относится к определённой категории и имеет своё значение.

HTTP/1.1 200 OK

пример кода состояния в HTTP

В этом примере: 200 это код состояния HTTP, означающий успешную обработку запроса, OK это текстовое описание статуса.

Код состояния позволяет клиенту быстро понять, был ли запрос успешно обработан, требуется ли переход на другой адрес или возникла ошибка.

Группы кодов состояния HTTP

Все коды состояния HTTP разделены на пять основных групп.

Первая цифра определяет категорию ответа.

Таблица кодов состояния HTTP
ДиапазонКатегорияНазначение
1xxInformationalИнформационные ответы
2xxSuccessУспешная обработка запроса
3xxRedirectionПереадресация
4xxClient ErrorОшибки на стороне клиента
5xxServer ErrorОшибки на стороне сервера

Ниже рассмотрим каждую группу подробнее.

1xx - Informational (Информационные ответы)

Коды группы 1xx означают, что сервер получил запрос и продолжает его обработку.

Это промежуточные ответы, после которых обычно следует окончательный ответ.

100 Continue

100 Continue - сервер получил начальную часть запроса и сообщает клиенту, что можно продолжать передачу его содержимого.

Чаще всего используется при отправке больших объёмов данных, когда клиент предварительно проверяет возможность передачи тела запроса.

101 Switching Protocols

101 Switching Protocols - сервер согласился переключить протокол в соответствии с запросом клиента.

Например, может использоваться при переходе с HTTP на WebSocket через механизм Upgrade в HTTP/1.1.

102 Processing

102 Processing - сервер принял запрос и обрабатывает его, но окончательный ответ пока не готов.

Этот код определён расширением WebDAV.

103 Early Hints

103 Early Hints - сервер отправляет предварительные заголовки, которые позволяют клиенту начать загрузку необходимых ресурсов ещё до получения окончательного ответа.

Например, браузер может заранее загрузить CSS или шрифты.

2xx - Success (Успешные ответы)

Коды группы 2xx означают, что запрос был успешно получен, понят и обработан сервером.

200 OK

200 OK - запрос успешно обработан.

Это один из наиболее распространённых кодов HTTP.

Используется, например, при получении данных через метод GET или успешном выполнении операции, для которой предусмотрен ответ с содержимым.

HTTP/1.1 200 OK
Content-Type: application/json

{
  "id": 15,
  "name": "Иван"
}

пример ответа HTTP 200 на правильный запрос клиента

201 Created

201 Created - запрос успешно выполнен, в результате чего был создан новый ресурс.

Часто используется после POST-запросов при создании новых записей.

HTTP/1.1 201 Created
Location: /api/users/15
Content-Type: application/json

{
  "id": 15,
  "name": "Иван"
}

пример ответа HTTP 201 о создании новой записи

Заголовок Location может содержать адрес созданного ресурса.

202 Accepted

202 Accepted - запрос принят для обработки, но сама обработка ещё не завершена.

Например, сервер может принять запрос на генерацию отчёта или обработку большого файла и выполнить операцию асинхронно.

Код 202 не гарантирует, что операция в итоге будет успешно завершена.

204 No Content

204 No Content - запрос успешно обработан, но сервер не возвращает тело ответа.

Часто используется после HTTP метода DELETE, когда удаление ресурса прошло успешно.

HTTP/1.1 204 No Content

пример ответа HTTP 204 без тела ответа

206 Partial Content

206 Partial Content - сервер возвращает только часть запрашиваемого ресурса.

Чаще всего используется при загрузке файлов по частям, когда клиент запрашивает определённый диапазон данных с помощью заголовка Range.

3xx - Redirection (Переадресация)

Коды группы 3xx сообщают клиенту, что для завершения запроса необходимо выполнить дополнительные действия, обычно связанные с переадресацией.

301 Moved Permanently

301 Moved Permanently - ресурс был перемещён на другой адрес на постоянной основе.

Сервер может указать новый адрес в заголовке Location.

HTTP/1.1 301 Moved Permanently
Location: https://example.com/new-page

пример ответа HTTP 301 о перемещенном ресурсе на постоянной основе

Браузер может автоматически перенаправить пользователя на новый адрес.

Часто используется при изменении URL страницы или домена сайта на постоянной основе.

302 Found

302 Found - ресурс временно доступен по другому адресу.

HTTP/1.1 302 Found
Location: https://example.com/temporary-page

пример ответа HTTP 302 о временном перемещении ресурса

В отличие от 301, этот код указывает на временную переадресацию.

303 See Other

303 See Other - сервер сообщает клиенту, что результат запроса доступен по другому адресу (URI) и для его получения следует использовать HTTP метод GET.

Часто применяется после отправки формы, чтобы перенаправить пользователя на страницу результата.

304 Not Modified

304 Not Modified -сообщает клиенту, что ресурс не изменился с момента последнего обращения.

В таком случае браузер может использовать ранее сохранённую копию ресурса из кэша.

Механизм позволяет уменьшить объём передаваемых данных и ускорить загрузку страниц.

307 Temporary Redirect

307 Temporary Redirect - сообщает о временной переадресации.

В отличие от 302, клиент должен сохранить исходный HTTP-метод и тело запроса при переадресации.

308 Permanent Redirect

308 Permanent Redirect - сообщает о постоянной переадресации.

В отличие от 301, клиент должен сохранить исходный HTTP-метод и тело запроса.

4xx - Client Error (Ошибки клиента)

Коды группы 4xx означают, что запрос не может быть обработан из-за проблемы, связанной с запросом клиента.

Это может быть неправильный формат данных, отсутствие авторизации, недостаточные права доступа или отсутствие запрашиваемого ресурса.

400 Bad Request

400 Bad Request - сервер не может обработать запрос из-за ошибки в его структуре или содержимом.

Например, клиент отправил некорректный JSON:

{
  "name": "Иван",
  "email":
}

пример некорректный запрос клиента

Сервер может вернуть:

HTTP/1.1 400 Bad Request
Content-Type: application/json

{
  "error": "Invalid request"
}

пример ответа HTTP 400 на некорректный запрос клиента

401 Unauthorized

401 Unauthorized - запрос не содержит действующих данных аутентификации.

Например, клиент пытается получить защищённый ресурс без токена доступа или передаёт недействительный токен.

HTTP/1.1 401 Unauthorized
Content-Type: application/json

{
  "error": "Authentication required"
}

пример ответа HTTP 401 на запрос клиента на защищенный ресурс

Несмотря на название не авторизован (Unauthorized), этот код прежде всего связан с отсутствием или недействительностью аутентификации.

403 Forbidden

403 Forbidden - сервер понял запрос, но отказывает в его выполнении.

Например, пользователь успешно прошёл аутентификацию, но не имеет прав на удаление определённой записи.

Когда использовать 401, а когда 403:

  • при 401 - отсутствуют действующие данные аутентификации

  • при 403 сервер отказывает в доступе к запрашиваемому ресурсу или выполнении операции

404 Not Found

404 Not Found - запрашиваемый ресурс не найден.

Например, клиент пытается получить пользователя с идентификатором, которого нет в системе.

HTTP/1.1 404 Not Found
Content-Type: application/json

{
  "error": "User not found"
}

пример ответа HTTP 404 на запрос клиента несуществующего объекта

Код может использоваться, если сервер не хочет раскрывать факт существования защищённого ресурса.

405 Method Not Allowed

405 Method Not Allowed - используемый HTTP-метод не поддерживается для указанного ресурса.

Например, ресурс позволяет получать данные через HTTP метод GET, но не поддерживает HTTP метод DELETE.

Сервер может вернуть заголовок Allow, содержащий список разрешённых методов.

HTTP/1.1 405 Method Not Allowed
Allow: GET, HEAD, OPTIONS

пример ответа HTTP 405 с разрешенными методами

406 Not Acceptable

406 Not Acceptable - сервер не может предоставить ответ в формате, который клиент указал в заголовке «Принимается» (Accept).

Например, клиент запрашивает XML, но сервер способен вернуть только JSON.

408 Request Timeout

408 Request Timeout - cервер не получил полный запрос в течение времени, отведённого на ожидание.

Например, клиент слишком долго передавал данные.

409 Conflict

409 Conflict - запрос не может быть выполнен из-за конфликта с текущим состоянием ресурса.

Например, клиент пытается создать пользователя с email, который уже зарегистрирован, если правила приложения запрещают дубликаты.

410 Gone

410 Gone - ресурс был удалён и больше недоступен.

В отличие от 404, этот код указывает, что отсутствие ресурса известно серверу и так и должно быть на постоянной основе.

413 Content Too Large

413 Content Too Large - размер тела запроса превышает допустимое значение, установленное сервером.

Например, пользователь пытается загрузить файл, размер которого превышает разрешённый лимит.

415 Unsupported Media Type

415 Unsupported Media Type - сервер не поддерживает формат данных, передаваемых в запросе.

Например, клиент отправляет XML, хотя API принимает только JSON.

422 Unprocessable Content

422 Unprocessable Content - сервер понимает тип содержимого и синтаксис запроса, но не может обработать переданные данные из-за ошибок в них.

Например, JSON корректен, но обязательное поле содержит недопустимое значение.

429 Too Many Requests

429 Too Many Requests - клиент отправил слишком много запросов за определённый период времени.

Часто используется для ограничения количества обращений к API (Rate Limiting).

Сервер может дополнительно вернуть заголовок Retry-After, указывающий, когда клиенту следует повторить запрос.

5xx - Server Error (Ошибки сервера)

Коды группы 5xx означают, что сервер не смог успешно обработать корректный запрос из-за проблемы на своей стороне или в инфраструктуре, через которую он выполняется.

500 Internal Server Error

500 Internal Server Error - произошла внутренняя ошибка сервера, которая помешала обработать запрос.

Это общий код для непредвиденных ошибок, причины которых могут быть связаны с программным кодом, базой данных или другими компонентами системы.

501 Not Implemented

501 Not Implemented - сервер не поддерживает функциональность, необходимую для выполнения запроса.

Например, сервер не реализовал указанный HTTP-метод или функциональность.

502 Bad Gateway

502 Bad Gateway - сервер, выступающий в роли шлюза или прокси, получил некорректный ответ от вышестоящего сервера.

Например, API обратился к внутреннему сервису, но получил от него недопустимый ответ.

503 Service Unavailable

503 Service Unavailable - сервер временно не может обработать запрос.

Причиной может быть техническое обслуживание, перегрузка или временная недоступность сервиса.

Сервер может использовать заголовок Retry-After, чтобы сообщить клиенту, когда можно повторить запрос.

504 Gateway Timeout

504 Gateway Timeout - сервер, работающий как шлюз или прокси, не дождался своевременного ответа от вышестоящего сервера.

Например, API отправил запрос внутреннему сервису, но тот не ответил в установленный промежуток времени.

Сводная таблица популярных кодов HTTP

таблица HTTP кодов состояния
КодНазваниеОписание
100ContinueМожно продолжить передачу запроса
101Switching ProtocolsПереключение протокола
103Early HintsПредварительные заголовки
200OKЗапрос успешно обработан
201CreatedРесурс создан
202AcceptedЗапрос принят для обработки
204No ContentУспешный ответ без тела
206Partial ContentВозвращена часть ресурса
301Moved PermanentlyПостоянная переадресация
302FoundВременная переадресация
303See OtherПереадресация с использованием GET
304Not ModifiedРесурс не изменился
307Temporary RedirectВременная переадресация с сохранением метода
308Permanent RedirectПостоянная переадресация с сохранением метода
400Bad RequestНекорректный запрос
401UnauthorizedТребуется аутентификация
403ForbiddenДоступ запрещён
404Not FoundРесурс не найден
405Method Not AllowedМетод не поддерживается ресурсом
406Not AcceptableНеприемлемый формат ответа
408Request TimeoutВремя ожидания запроса истекло
409ConflictКонфликт с текущим состоянием ресурса
410GoneРесурс окончательно удалён
413Content Too LargeСлишком большой запрос
415Unsupported Media TypeНеподдерживаемый формат данных
422Unprocessable ContentОшибка обработки содержимого
429Too Many RequestsСлишком много запросов
500Internal Server ErrorВнутренняя ошибка сервера
501Not ImplementedФункциональность не реализована
502Bad GatewayНекорректный ответ вышестоящего сервера
503Service UnavailableСервис временно недоступен
504Gateway TimeoutИстекло время ожидания ответа от вышестоящего сервера

Если у вас остались вопросы по кодам состоянии в HTTP, вы можете обратиться за консультацией к программисту.

Вам может быть интересно

Поделиться
Ничего не найдено
Найдите нужную страницу

Статьи, инструменты и помощь