При взаимодействии клиента с веб-сервером в ответ на каждый запрос возвращается код состояния HTTP. Эти коды позволяют определить результат обработки запроса и помогают диагностировать возможные проблемы в работе веб-приложений.
Категории кодов состояния
- Информационные коды (100-105) — промежуточные ответы сервера о статусе обработки запроса
- Успешные коды (200-226) — индикаторы успешного выполнения запроса
- Коды перенаправления (300-307) — указания клиенту о необходимости дополнительных действий
- Клиентские ошибки (400-499) — сообщения об ошибках на стороне клиента
- Серверные ошибки (500-510) — индикаторы проблем на стороне сервера
Для быстрого поиска информации используйте комбинацию клавиш CTRL + F и введите код интересующей вас ошибки.
Информационные коды (1xx)
100 Continue
Промежуточный ответ сервера, означающий успешное получение начальных заголовков запроса. Сервер готов принять тело запроса. Этот код помогает оптимизировать передачу данных, особенно при отправке больших объёмов информации.
101 Switching Protocols
Сервер подтверждает запрос клиента на смену протокола. Новый протокол указывается в заголовке Upgrade. Используется, например, при переключении с HTTP на WebSocket для установления постоянного соединения.
102 Processing
Сервер получил запрос и обрабатывает его, но требуется продолжительное время для завершения операции. Этот код предотвращает таймауты на стороне клиента при длительных операциях.
Успешные коды (2xx)
200 OK
Стандартный ответ для успешных HTTP-запросов. При использовании GET запрошенный ресурс передаётся в теле ответа. При POST сервер подтверждает успешное получение данных.
201 Created
Запрос успешно выполнен и привёл к созданию нового ресурса. Сервер указывает URI нового ресурса в заголовке Location. Типичный ответ на успешный POST-запрос.
202 Accepted
Запрос принят в обработку, но обработка ещё не завершена. Используется для асинхронных операций. Сервер должен указать статус обработки запроса или предполагаемое время завершения.
203 Non-Authoritative Information
Сервер успешно обработал запрос, но информация может быть получена не из первичного источника (например, из локального кэша или резервной копии).
204 No Content
Сервер успешно обработал запрос, но в ответе нет тела сообщения. Используется, когда клиенту требуется только обновить заголовки без изменения содержимого страницы.
205 Reset Content
Сервер успешно обработал запрос и просит клиента сбросить представление документа. Используется для очистки форм ввода или обновления интерфейса.
206 Partial Content
Сервер успешно обработал частичный GET-запрос, возвращая только запрошенный диапазон данных. Используется при загрузке больших файлов частями.
Коды перенаправления (3xx)
300 Multiple Choices
Запрос имеет несколько возможных ответов. Клиент должен выбрать один из них. Сервер предоставляет список вариантов в теле ответа.
301 Moved Permanently
Запрошенный ресурс окончательно перемещён на новый URI, указанный в заголовке Location. Браузеры автоматически перенаправляют запрос и кэшируют новый адрес.
302 Found
Ресурс временно доступен по другому URI. В отличие от 301, этот код указывает на временное перенаправление, и последующие запросы должны использовать исходный URI.
303 See Other
Ответ на запрос находится по другому URI и должен быть получен с помощью GET-запроса. Используется после успешной обработки POST-запроса для предотвращения повторной отправки формы.
304 Not Modified
Ресурс не изменился с момента последнего запроса. Клиент может использовать закэшированную копию. Оптимизирует передачу данных путём исключения повторной передачи неизменившегося контента.
Клиентские ошибки (4xx)
400 Bad Request
Сервер не может обработать запрос из-за ошибок в его структуре. Причиной могут быть некорректный синтаксис, недопустимые параметры или неверная кодировка данных.
401 Unauthorized
Запрос требует аутентификации пользователя. Сервер должен указать допустимые методы аутентификации в заголовке WWW-Authenticate. После успешной аутентификации запрос можно повторить.
403 Forbidden
Сервер понял запрос, но отказывается его выполнять из-за отсутствия прав доступа. В отличие от 401, аутентификация не поможет. Сервер должен объяснить причину отказа.
404 Not Found
Сервер не может найти запрошенный ресурс. Наиболее распространённая ошибка в интернете, возникающая при опечатках в URL, удалённых страницах или неправильной конфигурации сервера.
405 Method Not Allowed
Метод запроса недопустим для указанного ресурса. Например, попытка использовать PUT для ресурса, доступного только для чтения. Сервер должен указать допустимые методы в заголовке Allow.
Серверные ошибки (5xx)
500 Internal Server Error
Общая ошибка сервера, возникающая при неожиданных условиях. Указывает на проблемы в серверном программном обеспечении, например, ошибки в скриптах или проблемы с базой данных.
501 Not Implemented
Сервер не поддерживает функциональность, необходимую для обработки запроса. Возникает при использовании неизвестных серверу методов HTTP или при попытке выполнить неподдерживаемые операции.
502 Bad Gateway
Прокси-сервер или шлюз получил недопустимый ответ от вышестоящего сервера. Часто возникает при проблемах взаимодействия между серверами в распределённой системе.
503 Service Unavailable
Сервер временно не может обрабатывать запросы из-за перегрузки или технического обслуживания. Рекомендуется указывать в заголовке Retry-After время, через которое сервис будет доступен.
504 Gateway Timeout
Прокси-сервер или шлюз не получил своевременный ответ от вышестоящего сервера. Указывает на проблемы сетевого взаимодействия или перегрузку upstream-сервера.
505 HTTP Version Not Supported
Сервер не поддерживает или отказывается поддерживать версию HTTP-протокола, использованную в запросе. Требуется использовать другую версию протокола.