24/06/2022

Response codes

Response codes

Код ответа (состояния) HTTP показывает, был ли успешно выполнен определённый HTTP запрос. Коды сгруппированы в 5 классов:

  1. Информационные 100 - 199
  2. Успешные 200 - 299
  3. Перенаправления 300 - 399
  4. Клиентские ошибки 400 - 499
  5. Серверные ошибки 500 - 599
Код ответаНазваниеОписаниеВерсия HTTP
Информационные
100Continue"Продолжить". Этот промежуточный ответ указывает, что запрос успешно принят и клиент может продолжать присылать запросы либо проигнорировать этот ответ, если запрос был завершён.Только HTTP/1.1
101Switching Protocol"Переключение протокола". Этот код присылается в ответ на запрос клиента, содержащий заголовок Upgrade:, и указывает, что сервер переключился на протокол, который был указан в заголовке. Эта возможность позволяет перейти на несовместимую версию протокола и обычно не используется.Только HTTP/1.1
102Processing"В обработке". Этот код указывает, что сервер получил запрос и обрабатывает его, но обработка ещё не завершена.Только HTTP/1.1
103Early Hints"Ранние подсказки". В ответе сообщаются ресурсы, которые могут быть загружены заранее, пока сервер будет подготавливать основной ответ. RFC 8297 (Experimental).Только HTTP/1.1
Успешные
200

OK

"Успешно". Запрос успешно обработан. Что значит "успешно", зависит от метода HTTP, который был запрошен:
  • GET: "ПОЛУЧИТЬ". Запрошенный ресурс был найден и передан в теле ответа.
  • HEAD: "ЗАГОЛОВОК". Заголовки переданы в ответе.
  • POST: "ПОСЫЛКА". Ресурс, описывающий результат действия сервера на запрос, передан в теле ответа.
  • TRACE: "ОТСЛЕЖИВАТЬ". Тело ответа содержит тело запроса полученного сервером.
HTTP/0.9 и выше
201Created"Создано". Запрос успешно выполнен и в результате был создан ресурс. Этот код обычно присылается в ответ на запрос PUT "ПОМЕСТИТЬ".HTTP/0.9 и выше
202Accepted"Принято". Запрос принят, но ещё не обработан. Не поддерживаемо, т.е., нет способа с помощью HTTP отправить асинхронный ответ позже, который будет показывать итог обработки запроса. Это предназначено для случаев, когда запрос обрабатывается другим процессом или сервером, либо для пакетной обработки.HTTP/0.9 и выше
203Non-Authoritative Information"Информация не авторитетна". Этот код ответа означает, что информация, которая возвращена, была предоставлена не от исходного сервера, а из какого-нибудь другого источника. Во всех остальных ситуациях более предпочтителен код ответа 200 OK.HTTP/0.9 и 1.1
204No Content"Нет содержимого". Нет содержимого для ответа на запрос, но заголовки ответа, которые могут быть полезны, присылаются. Клиент может использовать их для обновления кешированных заголовков полученных ранее для этого ресурса.HTTP/0.9 и выше
205Reset Content"Сбросить содержимое". Этот код присылается, когда запрос обработан, чтобы сообщить клиенту, что необходимо сбросить отображение документа, который прислал этот запрос.Только HTTP/1.1
206Partial Content"Частичное содержимое". Этот код ответаиспользуется, когда клиент присылает заголовокдиапазона, чтобы выполнить загрузку отдельно,внесколько потоков.Только HTTP/1.1
Сообщения о перенаправлениях
300Multiple Choice

"Множественный выбор". Этот код ответа присылается, когда запросимеет более чемодин из возможныхответов. И User-agent илипользователь долженвыбрать один из ответов. Не существует стандартизированного способа выбора одного из полученных ответов.

HTTP/1.0 и выше
301Moved Permanently

"Перемещён на постоянной основе". Этот код ответа значит, что URI запрашиваемогоресурсабыл изменён.Возможно,новыйURI будет предоставлен в ответе.

HTTP/0.9 и выше
302Found

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

HTTP/0.9 и выше
303See Other"Просмотр других ресурсов". Этот код ответа присылается, чтобы направлять клиента для получения запрашиваемого ресурса в другой URI с запросом GET.HTTP/0.9 и 1.1
304Not Modified"Не модифицировано". Используется для кеширования. Это код ответа значит, что запрошенный ресурс не был изменён. Таким образом, клиент может продолжать использовать кешированную версию ответа.HTTP/0.9 и выше
305Use Proxy"Использовать прокси". Это означает, что запрошенный ресурс должен быть доступен через прокси. Этот код ответа в основном не поддерживается из соображений безопасности.Только HTTP/1.1
306Switch ProxyБольше не использовать. Изначально подразумевалось, что " последующие запросы должны использовать указанный прокси."Только HTTP/1.1
307Temporary Redirect"Временное перенаправление". Сервер отправил этот ответ, чтобы клиент получил запрошенный ресурс на другой URL-адрес с тем же методом, который использовал предыдущий запрос. Данный код имеет ту же семантику, что код ответа 302 Found, за исключением того, что агент пользователя не должен изменять используемый метод HTTP: если в первом запросе использовался POST, то во втором запросе также должен использоваться POST.Только HTTP/1.1
308Permanent Redirect

"Перенаправление на постоянной основе". Это означает, что ресурс теперь постоянно находится в другом URI, указанном в заголовке Location: HTTP Response. Данный код ответа имеет ту же семантику, что и код ответа 301 Moved Permanently, за исключением того, что агент пользователя не должен изменять используемый метод HTTP: если POST использовался в первом запросе, POST должен использоваться и во втором запросе.

Примечание: Это экспериментальный код ответа, Спецификация которого в настоящее время находится в черновом виде.

draft-reschke-http-status-308
Клиентские
400Bad Request"Плохой запрос". Этот ответ означает, что сервер не понимает запрос из-за неверного синтаксиса. HTTP/0.9 и выше
401Unauthorized"Неавторизованно". Для получения запрашиваемого ответа нужна аутентификация. Статус похож на статус 403, но,в этом случае, аутентификация возможна. HTTP/0.9 и выше
402Payment Required"Необходима оплата". Этот код ответа зарезервирован для будущего использования. Первоначальная цель для создания этого когда была в использовании его для цифровых платёжных систем(на данный момент не используется).HTTP/0.9 и 1.1
403Forbidden"Запрещено". У клиента нет прав доступа к содержимому, поэтому сервер отказывается дать надлежащий ответ. HTTP/0.9 и выше
404Not Found"Не найден". Сервер не может найти запрашиваемый ресурс. Код этого ответа, наверно, самый известный из-за частоты его появления в вебе. HTTP/0.9 и выше
405Method Not Allowed"Метод не разрешён". Сервер знает о запрашиваемом методе, но он был деактивирован и не может быть использован. Два обязательных метода, GET и HEAD, никогда не должны быть деактивированы и не должны возвращать этот код ошибки.Только HTTP/1.1
406Not Acceptable

Этот ответ отсылается, когда веб сервер после выполнения server-driven content negotiation, не нашёл контента, отвечающего критериям, полученным из user agent.

Только HTTP/1.1
407Proxy Authentication RequiredЭтот код ответа аналогичен коду 401, только аутентификация требуется для прокси сервера.Только HTTP/1.1
408Request TimeoutОтвет с таким кодом может прийти, даже без предшествующего запроса. Он означает, что сервер хотел бы отключить это неиспользуемое соединение. Этот метод используется все чаще с тех пор, как некоторые браузеры, вроде Chrome и IE9, стали использовать HTTP механизмы предварительного соединения для ускорения сёрфинга (смотрите bug(634278) , будущей реализации этого механизма в Firefox). Также учитывайте, что некоторые серверы прерывают соединения не отправляя подобных сообщений.Только HTTP/1.1
409Conflict

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

Только HTTP/1.1
410Gone

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

Только HTTP/1.1
411Length Required

Запрос отклонён, потому что сервер требует указание заголовка Content-Length, но он не указан.

Только HTTP/1.1
412Precondition FailedКлиент указал в своих заголовках условия, которые сервер не может выполнитьТолько HTTP/1.1
413Request Entity Too Large

Размер запроса превышает лимит, объявленный сервером. Сервер может закрыть соединение, вернув заголовок Retry-After

Только HTTP/1.1
414Request-URI Too LongURI запрашиваемый клиентом слишком длинный для того, чтобы сервер смог его обработатьТолько HTTP/1.1
415Unsupported Media TypeМедиа формат запрашиваемых данных не поддерживается сервером, поэтому запрос отклонёнТолько HTTP/1.1
416Requested Range Not SatisfiableДиапазон указанный заголовком запроса Range не может быть выполнен; возможно, он выходит за пределы переданного URIТолько HTTP/1.1
417Expectation FailedЭтот код ответа означает, что ожидание, полученное из заголовка запроса Expect, не может быть выполнено сервером.Только HTTP/1.1
Серверные
500Internal Server Error"Внутренняя ошибка сервера". Сервер столкнулся с ситуацией, которую он не знает как обработать. HTTP/0.9 и выше
501Not Implemented"Не выполнено". Метод запроса не поддерживается сервером и не может быть обработан. Единственные методы, которые сервера должны поддерживать (и, соответственно, не должны возвращать этот код) - GET и HEAD.HTTP/0.9 и выше
502Bad Gateway"Плохой шлюз". Эта ошибка означает что сервер, во время работы в качестве шлюза для получения ответа, нужного для обработки запроса, получил недействительный (недопустимый) ответ. HTTP/0.9 и выше
503Service Unavailable"Сервис недоступен". Сервер не готов обрабатывать запрос. Зачастую причинами являются отключение сервера или то, что он перегружен. Обратите внимание, что вместе с этим ответом удобная для пользователей(user-friendly) страница должна отправлять объяснение проблемы. Этот ответ должен использоваться для временных условий и Retry-After: HTTP-заголовок должен, если возможно, содержать предполагаемое время до восстановления сервиса. Веб-мастер также должен позаботиться о заголовках, связанных с кешем, которые отправляются вместе с этим ответом, так как эти ответы, связанные с временными условиями, обычно не должны кешироваться. HTTP/0.9 и выше
504Gateway TimeoutЭтот ответ об ошибке предоставляется, когда сервер действует как шлюз и не может получить ответ вовремя.Только HTTP/1.1
505HTTP Version Not Supported"HTTP-версия не поддерживается". HTTP-версия, используемая в запросе, не поддерживается сервером.Только HTTP/1.1