В мире интернета каждое взаимодействие между клиентом (например, браузером) и сервером сопровождается незаметным обменом сообщениями. Среди этих сообщений ключевую роль играют коды ответа сервера. Эти коды, известные как коды состояния HTTP, — способ, которым сервер сообщает клиенту о состоянии выполненного запроса. Они являются неотъемлемой частью протокола HTTP (HyperText Transfer Protocol) и служат универсальным языком, на котором сервер информирует клиента об успехе или неудаче запроса.
Коды ответа передаются сервером в заголовке HTTP-ответа, и их можно проверять и анализировать с помощью различных онлайн-инструментов и сервисов. Пример такого инструмента предлагает codex.md — проверка ответа сервера доступна по адресу https://codex.md/ru/proverka-koda-otveta-servera/. Эти коды — не просто цифры: они дают важную информацию о состоянии запрошенных ресурсов, о возможных ошибках и о том, какие действия должен предпринять клиент, чтобы получить нужный результат.
Список кодов ответа сервера
Коды ответа HTTP делятся на пять основных классов, каждый со своим назначением. Ниже — подробный разбор каждого кода и его значения:
1. Коды 2xx — Успех
Эти коды означают, что запрос клиента получен, понят и успешно обработан.
- 200 — OK: Запрос успешно обработан, запрошенные данные возвращены клиенту.
- 201 — Created: Запрос выполнен и привёл к созданию нового ресурса на сервере.
- 202 — Accepted: Запрос принят к обработке, но обработка не завершена. Клиенту не нужно ждать её окончания.
- 203 — Non-Authoritative Information: Аналогично 200, но возвращённая информация получена не напрямую из первоисточника.
2. Коды 3xx — Перенаправление
Эти коды означают, что клиент должен выполнить дополнительное действие для завершения запроса — как правило, перенаправление на другой адрес.
- 300 — Multiple Choices: Для запрошенного ресурса доступно несколько вариантов.
- 301 — Moved Permanently: Запрошенный ресурс окончательно перемещён на другой адрес.
- 302 — Found: Запрошенный ресурс временно доступен по другому адресу.
- 303 — See Other: Ответ на запрос можно найти по другому адресу.
- 304 — Not Modified: Ресурс не изменялся с момента последнего запроса, клиент может использовать версию из кэша.
- 305 — Use Proxy: Запрошенный ресурс доступен только через прокси-сервер.
- 307 — Temporary Redirect: Запрошенный ресурс временно доступен по другому адресу.
3. Коды 4xx — Ошибки клиента
Эти коды означают, что запрос клиента содержит ошибки или не может быть обработан из-за проблем на стороне клиента.
- 400 — Bad Request: Сервер не может понять запрос из-за синтаксической ошибки.
- 401 — Unauthorized: Запрос требует аутентификации клиента.
- 403 — Forbidden: Сервер понял запрос, но отказывается его выполнять по соображениям безопасности или из-за других ограничений.
- 404 — Not Found: Запрошенный ресурс не найден на сервере.
- 405 — Method Not Allowed: Использованный в запросе метод не разрешён для данного ресурса.
- 406 — Not Acceptable: Ресурс не может сформировать ответ в соответствии с параметрами, указанными в запросе.
- 407 — Proxy Authentication Required: Аналогично 401, но аутентификация требуется на уровне прокси-сервера.
- 408 — Request Timeout: Сервер слишком долго ждал ответа от клиента.
- 409 — Conflict: Запрос не удалось обработать из-за конфликта с текущим состоянием ресурса.
- 410 — Gone: Запрошенный ресурс больше не доступен на сервере, и адреса для перенаправления нет.
- 411 — Length Required: Сервер требует, чтобы запрос содержал поле с указанием длины.
- 412 — Precondition Failed: Одно или несколько условий, указанных в запросе, не выполнены.
- 413 — Request Entity Too Large: Запрос слишком велик для обработки сервером.
- 414 — Request-URI Too Long: URL-адрес, указанный в запросе, слишком длинный.
- 415 — Unsupported Media Type: Формат данных в запросе не поддерживается сервером.
4. Коды 5xx — Ошибки сервера
Эти коды означают, что сервер столкнулся с проблемой при обработке запроса.
- 500 — Internal Server Error: Сервер столкнулся с внутренней ошибкой и не смог обработать запрос.
- 501 — Not Implemented: Сервер не поддерживает функциональность, необходимую для обработки запроса.
- 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: Сервер обнаружил бесконечный цикл при обработке запроса.
- 509 — Bandwidth Limit Exceeded: Превышен лимит пропускной способности.
- 510 — Not Extended: Запрос требует дополнительных расширений, которые не поддерживаются сервером.
- 511 — Network Authentication Required: Для доступа к ресурсу требуется сетевая аутентификация.
- 520 — Unknown Error: Сервер столкнулся с неизвестной ошибкой.
- 521 — Web Server Is Down: Веб-сервер не работает.
- 522 — Connection Timed Out: Время ожидания подключения к серверу истекло.
- 523 — Origin Is Unreachable: Исходный сервер недоступен.
- 524 — A Timeout Occurred: Время ожидания соединения истекло.
- 525 — SSL Handshake Failed: Согласование SSL между клиентом и сервером не удалось.
- 526 — Invalid SSL Certificate: SSL-сертификат, используемый сервером, недействителен.
Заключение
Коды ответа сервера — фундаментальный элемент связи между клиентом и сервером. Они не только сообщают о состоянии запросов, но и служат средством диагностики и решения проблем, возникающих при работе в интернете. Понимание этих кодов необходимо веб-разработчикам, системным администраторам и даже обычным пользователям, которые хотят лучше понимать, как устроен интернет. С помощью инструментов вроде тех, что предлагает codex.md, можно анализировать и интерпретировать эти коды, чтобы ваши онлайн-взаимодействия были максимально быстрыми и эффективными.
