Блог LearnQA

Коды ответа сервера

Когда вы заходите на веб-сайт, ваш браузер отправляет запрос серверу, чтобы получить нужную информацию. Код ответа сервера показывает, успешно ли был выполнен ваш запрос. В этой статье мы рассмотрим все коды ответа сервера и объясним их значения.
HTTP - это протокол, который используется для передачи данных через Интернет. Когда вы обращаетесь к веб-сайту, ваш браузер отправляет запрос на сервер, который содержит информацию о том, какую страницу вы хотите открыть. Сервер обрабатывает ваш запрос и возвращает ответ, который содержит код состояния HTTP. Коды состояния HTTP представляют собой трехзначные числа, которые указывают, был ли запрос успешно обработан и какой тип ответа был возвращен.
1xx - Информационные сообщения
Коды 1xx используются сервером, чтобы сообщить клиенту о том, что запрос принят и обрабатывается. Эти коды не являются ошибками и не требуют дополнительных действий со стороны клиента. Наиболее часто используемые коды 1xx включают в себя:
  • 100 Continue (Продолжить) - сервер принял начальный запрос и готов принять дальнейшие данные.
  • 101 Switching Protocols (Переключение протоколов) - сервер переключается на другой протокол, указанный в заголовке запроса.
2xx - Успешный результат
Коды 2xx указывают на успешное выполнение запроса и возвращают запрошенные данные. Наиболее часто используемые коды 2xx включают в себя:
  • 200 OK (Успешно) - сервер успешно обработал запрос и вернул запрошенные данные.
  • 201 Created (Создано) - сервер успешно создал новый ресурс и вернул его в ответе.
  • 204 No Content (Нет содержимого) - сервер успешно обработал запрос, но не вернул никаких данных в ответе.
3xx - Перенаправление
Коды 3xx используются сервером, чтобы сообщить клиенту, что дополнительные действия требуются для завершения запроса. Наиболее часто используемые коды 3xx включают в себя:
  • 301 Moved Permanently (Перемещено навсегда) - запрашиваемый ресурс был перемещен на новый URL.
  • 302 Found (Найдено) - запрашиваемый ресурс был временно перемещен на новый URL.
  • 304 Not Modified (Не изменено) - запрашиваемый ресурс не был изменен с момента последнего обращения, и сервер возвращает кэшированную версию.
4xx - Ошибки, связанные с клиентом
Коды 4xx указывают на ошибки, связанные с запросом, отправленным клиентом. Наиболее часто используемые коды
  • 400 Bad Request (Неверный запрос) - сервер не может обработать запрос из-за неверного синтаксиса или других ошибок в запросе.
  • 401 Unauthorized (Неавторизован) - сервер требует аутентификации, и клиент не отправил допустимые учетные данные.
  • 403 Forbidden (Запрещено) - сервер понимает запрос, но отказывается выполнять его из-за ограничений в доступе к запрашиваемому ресурсу.
  • 404 Not Found (Не найдено) - сервер не может найти запрашиваемый ресурс.
5xx - Ошибки сервера
Коды 5xx указывают на ошибки, которые возникают на стороне сервера при обработке запроса. Наиболее часто используемые коды 5xx включают в себя:
  • 500 Internal Server Error (Внутренняя ошибка сервера) - сервер столкнулся с неожиданным сбоем при обработке запроса.
  • 502 Bad Gateway (Неверный шлюз) - сервер, выступающий в качестве шлюза или прокси-сервера, получил некорректный ответ от сервера, к которому он обращался.
  • 503 Service Unavailable (Сервис недоступен) - сервер временно не может обработать запросы из-за перегрузки или обслуживания.
Знание кодов состояния HTTP полезно для разработчиков веб-приложений и администраторов серверов. Например, коды 4xx помогают разработчикам идентифицировать проблемы с клиентским кодом, такими как ошибки ввода или отсутствие необходимых данных, в то время как коды 5xx указывают на проблемы с сервером. Администраторы серверов могут использовать коды состояния HTTP для мониторинга состояния сервера и выявления проблем.
Также, знание кодов состояния HTTP может помочь в понимании ошибок, которые могут возникнуть в ходе работы с API. Например, если вы используете API, которое возвращает код 401, то вы знаете, что необходима авторизация для доступа к запрашиваемым данным

Примеры сценариев, в которых вы можете получить коды

200 OK - сервер успешно обработал запрос и вернул запрошенные данные.
Пример: клиент запрашивает страницу веб-сайта и получает успешный ответ 200 OK с содержимым страницы.
201 Created - сервер успешно создал новый ресурс.
Пример: клиент отправляет данные для создания новой записи в базе данных через API, и сервер успешно создает эту запись и возвращает код 201 Created.
400 Bad Request - сервер не может обработать запрос из-за неверного синтаксиса или других ошибок в запросе.
Пример: клиент отправляет запрос на создание новой записи через API с отсутствующим обязательным полем, и сервер возвращает код 400 Bad Request с сообщением об ошибке.
401 Unauthorized - сервер требует аутентификации, и клиент не отправил допустимые учетные данные.
Пример: клиент пытается получить доступ к защищенной странице веб-сайта без предоставления допустимых учетных данных, и сервер возвращает код 401 Unauthorized.
403 Forbidden - сервер понимает запрос, но отказывается выполнять его из-за ограничений в доступе к запрашиваемому ресурсу.
Пример: клиент пытается получить доступ к ресурсу на сервере, к которому у него нет доступа, и сервер возвращает код 403 Forbidden.
404 Not Found - сервер не может найти запрашиваемый ресурс.
Пример: клиент запрашивает страницу веб-сайта, которой не существует, и сервер возвращает код 404 Not Found.
500 Internal Server Error - сервер столкнулся с неожиданным сбоем при обработке запроса.
Пример: при выполнении запроса через API сервер сталкивается с неожиданной ошибкой, и возвращает код 500 Internal Server Error.
503 Service Unavailable - сервер временно не может обработать запросы из-за перегрузки или обслуживания.
Пример: клиент пытается получить доступ к веб-сайту, который перегружен, и сервер возвращает код 503 Service Unavailable.
В заключение, знание кодов состояния HTTP полезно как для разработчиков, так и для администраторов серверов. Коды состояния HTTP помогают идентифицировать ошибки и проблемы, которые могут возникнуть при работе с веб-серверами и API.