Тариф успешно добавлен в корзину
В корзину
url image

Коды ответов и ошибок сервера HTTP

Код ответа сервера — это трёхзначное число, которое отдает сервер браузеру пользователя на его запрос, тем самым информируя его о результате обработки данного запроса. Зачастую вместе с цифровым кодом выдается и краткое описание ответа на английском языке.

Тот или иной ответ от сервера можно сравнить с ответом оператора при наборе любого номера телефона — вы можете услышать, что абонент занят, вне зоны действия или номер вовсе не существует. Все ответы HTTP делятся на пять категорий.

Классификация кодов ответа от сервера

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

Классификация кодов ответов серверов:

  • 1хх — информационные коды (Informational), которые указывают, что запрос принят и выполняется. Являются временными кодами. 
  • 2хх — коды успешной обработки запросов (Success). Означают, что запрос успешно принят и обработан. Проще говоря, страница существует, с ней все в порядке. 
  • 3хх — коды перенаправлений (Redirection). Указывают, что для осуществления запроса нужно выполнить дополнительное действие - перенаправление на другой URL.
  • 4хх — коды, которые указывают на проблему со стороны клиента (Client Error). Например, запрашиваемая страница не найдена (неверный URL) или запрос имеет ошибку.  
  • 5хх — ошибки со стороны сервера (Server Error). Возникают, когда сервер не может обработать допустимый запрос по какой-либо причине. 

Набор кодов состояния является стандартом. Все коды описаны в серии пронумерованных информационных документов интернета RFC. Введение новых кодов допускается, но лишь после согласования с IETF — Инженерным советом Интернета. 

Коды 1xx (информационные сообщения)

Они не видны пользователю и используются, чтобы донести до браузера определенную информацию. Обычно после этих сообщений сервер продолжает взаимодействие с браузером.

Код

Текстовое сообщение

Значение

100

Continue / Продолжайте

Всё в порядке, сервер принял запрос браузера, и скоро последует ответ. На это сообщение реагировать не нужно.

101

Switching Protocols / Переключение протоколов

Этот код сервер отправляет браузеру в ответ на предложение переключиться на более подходящий протокол — например, WebSocket вместо HTTP. Своим ответом сервер показывает, что переключился и указывает в заголовке Upgrade название протокола.

102

Processing / В процессе

Код появляется, когда запрос получен, но для его обработки требуется время. После получения сообщения 102 браузер «понимает», что всё в порядке, сервер активен и скоро даст ответ. Серверу рекомендуется отправлять этот код, если время ожидания — более 20 секунд.

103

Early Hints / Предварительный ответ

Код показывает, что сервер еще обрабатывает запрос, но в ответе он отправляет браузеру «подсказки» — адрес сайта или ссылки на ресурсы, которые нужно будет загрузить. То есть браузер уже может «подготовиться» к получению полного ответа, чтобы быстрее завершить операцию.  

Коды 2xx (успешно обработанные запросы)

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

Код

Текстовое сообщение

Значение

200

OK / Успех

Запрос успешно обработан и принят. То есть пользователь будет направлен на страницу, которую запрашивал, или получит нужные данные.

201

Created / Создано

Запрос успешно выполнен, и создана новая сущность — например, страница сайта или заказ в интернет-магазине. В теле ответа указывается адрес нового ресурса или его характеристики.

202

Accepted / Принято

Запрос принят и одобрен, но операция пока идет. Код отправляется, когда выполнение запроса требует длительного времени — например, если нужно загрузить на сайт большой объем контента. После завершения операции браузер получит либо код 200 (ОК), либо один из кодов-ошибок, если что-то пошло не так.

203

Non-Authoritative Information / Информация не авторитетна

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

204

No Content / Нет содержимого

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

205

Reset Content / Сбросить содержимое

Запрос успешно выполнен, и браузер должен сбросить введенный контент. Это происходит, например, когда пользователь заполнил форму на сайте и нажал «Отправить». Код 205 подскажет браузеру, что нужно очистить форму, если вдруг пользователь захочет отправить другие данные.

206

Partial Content / Частичное содержимое

Код применяется, если пользователь запросил часть контента — например, только первое видео со страницы.

207

Multi-Status / Мультистатус

В ответе передается несколько статусов — в его теле могут быть другие сообщения с кодами 1хх, 2хх и т.д. 

208

Already Reported / Уже сообщалось

Это дополнительный код, который используется вместе с кодом 207 (Мультистатус), чтобы избежать конфликтов между запросами, а тело ответа было короче. 

226 

IM Used / Использовано IM

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

Коды 3xx (перенаправление)

Коды показывают, что для успешного выполнения запроса нужно выполнить какие-либо действия — выбрать нужный URL или перейти на другой адрес. Чаще это происходит автоматически, но иногда нужно подтверждение пользователя. 

КодТекстовое сообщениеЗначение
300Multiple Choices / Множественный выборПо данному запросу есть несколько вариантов URL. Пользователь или браузер должен выбрать один из них.
301Moved Permanently / Перемещено навсегда Такой ответ придет при попытке зайти на удаленную страницу, после этого браузер должен запросить новый адрес. Некоторые браузеры некорректно ведут себя после получения кода, поэтому вместо него чаще используется 308.
302Found / Найдено, Moved Temporarily / Временно перемещено Код отправляется, если объект временно отправлен на другой адрес — например, когда на сервере идут технические работы. Некоторые браузеры некорректно себя ведут после получения кода, поэтому вместо него чаще используется 303 или 307.
303See Other / Смотреть другоеОбъект перемещен, и браузер должен запросить его адрес через метод GET.
304Not Modified / Не измененЗапрашиваемый объект не изменялся с момента последнего запроса. Сервер использует такой ответ, чтобы сокращать время на загрузку ресурса — обновляются только измененные элементы.
305Use Proxy / Используйте проксиОбъект доступен только через прокси-сервер. Данные прокси указываются в заголовке ответа.
307Temporary Redirect / Временное перенаправлениеОбъект временно перемещен, и браузер должен запросить его адрес, используя тот же способ, что и до этого (GET или POST). 
308Permanent Redirect / Постоянное перенаправлениеОбъект перемещен навсегда, и браузер должен запросить его адрес, используя тот же способ, что и до этого (GET или POST). 

Коды 4xx (ошибки со стороны клиента)

Мы наконец подобрались непосредственно к ошибкам. Ответы с кодом 4хх говорят о том, что сервер не может обработать запрос по вине клиента — например, на его стороне плохое соединение, или пользователь ввел неправильный адрес. Такие ошибки пользователь видит на своем экране. Некоторые требуют определенных действий, а другие полностью запрещают доступ к документу.

Часть ошибок требует от пользователя базового знания HTTP — например, в ответе нужно заполнить заголовки.

КодТекстовое сообщениеЗначение
400Bad Request / Неправильный запросВ запросе клиента есть синтаксическая ошибка.
401Unauthorized / Неавторизованный запросЧтобы получить доступ к информации, нужно пройти авторизацию
402Зарезервирован для использования в будущем.
403Forbidden / ЗапрещеноВ отличие от ошибки 401, которая требует пройти авторизацию, этот код говорит о полном запрете доступа к ресурсу. Например, если вы заходите с определенного IP или геолокации.
404Not Found / Не найденоЗапрос сформулирован корректно и обработан, но объект не найден — возможно, страница удалена или перемещена, но серверу неизвестно, куда.
405Method Not Allowed / Метод не разрешенМетод запроса не разрешено использовать для этого объекта. В заголовке ответа сервер указывает разрешенные методы.
406Not Acceptable / Не применимоЗапрос обработан, но сервер не может вернуть корректный ответ, потому что клиент его не распознает. Проблема может быть в формате страницы или кодировки. Такая ошибка используется редко — всё же разработчики стараются предоставить пользователю контент хоть в каком-то виде.  
407

Proxy Authentication Required

 / Требуется аутентификация прокси

Код ошибки похож на 401, но здесь авторизация требуется для прокси.
408

Request Timeout / Время ожидания истекло

 

Сервер разорвал соединение после долгого ожидания ответа от клиента. У каждого сервера свой таймаут ожидания.
409Conflict / КонфликтЗапрос не может быть выполнен, потому что конфликтует с политикой сервера. Например, если два пользователя пытаются создать файлы с одинаковыми именами. 

410

Gone / Удален

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

411

Length Required / Требуется указать длину

Для доступа к объекту необходимо заполнить заголовок Content-Length.

412

Precondition Failed / Ложное условие 

 

Не были выполнены условия заполнения HTTP-заголовков.

413

Payload Too Large / Полезная нагрузка слишком велика

Тело запроса слишком большое, и сервер отказывается его обработать.

414

URL Too Long / URL слишком длинный

Адрес ресурса в запросе очень большой — такая ошибка появляется при попытке передать длинный URL через GET-запрос.

415

Unsupported Media Type / Тип медиа не поддерживается

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

416

Range Not Satisfiable / Диапазон не достижим

Клиент запрашивает определенные данные, но нужные объекты на сервере не соответствуют запросу. Например, клиент запросил документ размером 900 байт, а на сервере он весит 200 байт, потому что был поврежден в процессе загрузки. Соответственно, сервер не выдаст документ браузеру и отправит код 416.

417

Expectation Failed / Значение Expect не может быть обработано

 

Сервер не может обработать поле Expect. Такое случается, если вы используете прокси-сервер, который не поддерживает HTTP. Можно попробовать отправить серверу запрос без этого поля.

418

I’m a teapot / Я — чайник 

Код-шутка, был придуман в 1998 году. Используется как «пасхалка» на некоторых серверах. 

419

Authentication Timeout / Время ожидания аутентификации истекло

Может использоваться в дополнение к коду 401 для тех ресурсов, где аутентификации клиента не хватает для полноценного доступа.

421

Misdirected Request / Неверно адресованный запрос

Запрос перенаправлен на сервер, который не смог ответить.

422

Unprocessable Entity / Необрабатываемый экземпляр

Сервер успешно принял и распознал содержимое, но не может произвести операцию из-за логической ошибки. Например, если в теле запроса содержится синтаксически корректный XML-документ, но семантически ошибочные XML-инструкции.

423

Locked / Заблокировано

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

424

Failed Dependency / Невыполненная зависимость

Будет ли выполнен запрос, зависит от успешности совершения другой операции. Например, пользователь написал пост, нажал «Сохранить» и хочет добавить комментарий. Если из-за внутренней ошибки пост не сохранится, то оставить комментарий будет нельзя, и сервер вернет ответ с кодом 424.

425

Too Early / Слишком рано

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

426

Upgrade Required / Требуется обновление

Клиенту необходимо обновить протокол — например, перейти на TLS.

428

Precondition Required / Требуется указать условия

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

429

Too Many Requests / Слишком много запросов

Сервер подозревает, что клиент хочет совершить DDoS-атаку и не пускает его на ресурс. В заголовке ответа может быть указано Retry-After («Попробуйте снова после…») и время, через которое можно снова попытаться отправить запрос.

431

Request Header Fields Too Large / Заголовок слишком большой

Допустимая длина заголовка превышена. После уменьшения поля заголовка запрос можно повторить.

434

Requested Host Unavailable / Запрашиваемый хост недоступен

Сервер не нашел данных об отправленном HTTP-коде.

444

No response / Нет ответа

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

449

Retry with / Повторить с

Данных в запросе недостаточно для получения ответа. Нужно дополнить запрос указанными сервером данными. Обычно используется в программах Microsoft.

450

Blocked by Windows Parental Controls / Заблокировано «Родительским контролем»  

Ошибка появляется при попытке зайти на «взрослые» ресурсы с детского аккаунта. 

451

Unavailable For Legal Reasons / Недоступно по юридическим причинам

Ресурс недоступен по юридическим причинам — например, если заблокирован на территории государства. Код ошибки — отсылка к роману Рэя Брэдбери «451 градус по Фаренгейту».  

456

Unrecoverable Error / Ошибка без возможности восстановления

При запросе клиента возникают ошибки в таблицах баз данных — такое может происходить, если запрос составлен некорректно.

499

Client Closed Request / Клиент закрыл запрос

Используется сервером Nginx, если клиент закрыл соединение, пока сервер обрабатывал запрос.

Коды 5xx (ошибки на стороне сервера)

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

Код

Текстовое сообщение

Значение

500

Internal Server Error / Внутренняя ошибка сервера

Любая ошибка сервера, которая не поддается классификации с помощью других кодов.

501

Not Implemented / Не реализовано 

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

502

Bad Gateway / Ошибочный шлюз

Вышестоящий сервер отправил недействительный ответ. Такое может произойти, например, из-за несогласованных протоколов.

503

Service Unavailable / Сервис недоступен

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

504

Gateway Timeout / Шлюз не отвечает

Сервер не получил ответа от вышестоящего сервера — например, из-за проблем с соединением.

505

HTTP Version Not Supported / HTTP версия не поддерживается

Сервер не поддерживает версию HTTP — например, если она устарела. 

507

Insufficient Storage / Переполнения хранилища

Места для обработки запроса не хватает. Возможно, через какое-то время владелец сервера решит проблему, и можно будет отправить запрос еще раз. 

508

Loop Detected / Обнаружен цикл

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

509

Bandwidth Limit Exceeded / Исчерпана пропускная ширина канал

Используется, если у ресурса стоит ограничение на потребление трафика. 

510

Not Extended / Расширение отсутствует

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

511

Network Authentication Required / Требуется аутентификация в сети

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

Как узнать код ответа сервера

Проверить код ответа сервера помогут:

  1. Опции браузера и специальные приложения. Так, в Google Chrome значение кода находится в столбце Status во вкладке Network. Для получения данных нужно открыть в браузере необходимую страницу сайта и нажать клавишу F12, чтобы тем самым активировать функциональную панель вебмастера или самостоятельно перейти в «Инструменты разработчика».
Инструменты разработчика в браузереПроверка кодов ответов сервера в браузере

 

Также в данном браузере можно установить плагин Redirect Path.

  1. Бесплатные ресурсы для диагностики кодов ответа. Они помогут провести анализ одной страницы или одновременно просканировать сразу несколько страниц. К наиболее популярным сервисам относят:

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

Выводы

Коды состояния HTTP делятся на 5 категорий, среди которых собственно ошибками являются две последние — с кодами 4хх и 5хх. Коды ошибок позволяют в лаконичной форме донести до клиента, что пошло не так. А прочитать код любой страницы проще всего через специальные онлайн-сервисы — это полезно разработчикам и обычным пользователям, чтобы понимать, почему не получается зайти на ресурс или выполнить определенное действие.

Этот материал был полезен?

Скидка новым клиентам
Закажите сервер сегодня и получите скидку на первый месяц аренды!