Шпаргалка по кодам ответа состояния HTTP

Шпаргалка по кодам ответа состояния HTTP



Код состояния HTTP зашифрован в 3-х цифрах. Первая цифра указывает на класс состояния (группа кодов). Вторая и третья цифра – порядковый номер кода ответа.

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

Коды сгруппированы в 5 классов: информационные (1xx), успешные (2xx), перенаправления (3xx), ошибки клиента (4xx) и ошибки сервера (5xx).

Краткая характеристика классов:

  • 1xx (информационные): в этот класс выделены коды, информирующие о процессе передачи
  • 2xx (успешные): сообщения данного класса информируют о случаях успешного принятия и обработки запроса клиента
  • 3xx (перенаправления): коды этого класса сообщают клиенту, что для успешного выполнения операции необходимо сделать другой запрос (как правило, по другому URI)
  • 4xx (ошибки клиента): коды данного класса предназначены для указания ошибок со стороны клиента
  • 5xx (ошибки сервера): коды ответов этого класса выделены под случаи неудачного выполнения операции по вине сервера

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

ГруппаКод ответаНазвание кодаОписание ответа сервера
Информационные100Continue (Продолжай)Сервер удовлетворен начальными сведениями о запросе, клиент может продолжать пересылать заголовки. Появился в версии HTTP/1.1.
101Switching Protocol (Переключение протоколов)Сервер предлагает перейти на более подходящий для указанного ресурса протокол; список предлагаемых протоколов сервер обязательно указывает в поле заголовка Upgrade. Если клиента это заинтересует, то он посылает новый запрос с указанием другого протокола.
102Processing (Идет обработка)Запрос принят сервером, но на его обработку понадобится длительное время. Этот ответ используется для того, чтобы клиент не разорвал соединение из-за превышения времени ожидания. Клиент при получении такого ответа должен сбросить таймер и дожидаться следующей команды в обычном режиме. Появился в WebDAV.
Успешные200ОКУспешно обработанный запрос. «Успешность» зависит от метода HTTP, который был запрошен:

  • GET: «ПОЛУЧИТЬ». Запрошенный ресурс был найден и передан в теле ответа.
  • HEAD: «ЗАГОЛОВОК». Заголовок передан в ответе.
  • POST: «ПОСЫЛКА». Ресурс, описывающий результат действия сервера на запрос, передан в теле ответа.
  • TRACE: «ОТСЛЕЖИВАТЬ». Тело ответа содержит тело запроса полученного сервером.
201Created (Создано)Запрос успешно выполнен и в результате был создан новый ресурс. Этот код обычно присылается в ответ на запрос PUT «ПОМЕСТИТЬ».
202Accepted (Принято)Запрос принят, но еще не обработан. Клиенту не обязательно дожидаться окончательной передачи сообщения, так как может быть начат очень долгий процесс.
203Non-Authoritative Information (Информация не авторитетна)Этот код ответа означает, что информация, которая была возвращена, была предоставлена не сервером, а каким-либо другим источником. Аналогично ответу 200, но в этом случае передаваемая информация была взята не из первичного источника и поэтому может быть неактуальной.
204No Content (Нет содержимого)Сервер успешно обработал запрос, но в ответе были переданы только заголовки без тела сообщения. Клиент не должен обновлять содержимое документа, но может применить к нему полученные метаданные. Клиент может использовать их для обновления кэшированных заголовков для предыдущих ресурсов.
205Reset Content (Сбросить содержимое)Этим кодом сервер обязывает клиента сбросить введенные пользователем данные. Тела сообщения сервер при этом не передает и документ обновлять не обязательно.
206Partial Content (Частичное содержимое)Сервер удачно выполнил частичный GET-запрос, возвратив только часть контента. В заголовке Content-Range сервер указывает байтовые диапазоны содержимого. Особое внимание при работе с подобными ответами следует уделить кэшированию.
Перенаправления
300Multiple Choice (Множественный выбор)Этот код ответа присылается, когда запрос имеет более чем один из возможных ответов (по типу MIME, по языку или по другим характеристикам). Сервер передает с сообщением список альтернатив, давая возможность сделать выбор клиенту автоматически или пользователю.
301Moved Permanently (Перемещен на постоянной основе)Этот код ответа означает, что URI запрашиваемого ресурса был изменен. Новый URI указывается в поле Location заголовка.
302Found (Найдено); Moved Temporarily (Перемещен временно)Этот код ответа означает, что запрошенный ресурс временно доступен по другому URI, указанному в поле Location заголовка.
303See Other (Смотреть другое)Сервер отправил этот ответ, чтобы направить клиента для получения запрашиваемого ресурса по другому URI с использованием метода GET. Другой URI указывается в поле Location заголовка.
304Not Modified (Не изменялось)Этот ответ используется для кэширования. Он сообщает клиенту, что ответ не был изменен. Таким образом, клиент может продолжать использовать ту же кэшированную версию ответа. При этом сообщение сервера не должно содержать тела.
305Use Proxy (Используй прокси)Запрос к запрашиваемому ресурсу должен осуществляться через прокси-сервер, URI которого указан в поле Location заголовка. Этот код ответа не поддерживается в основном из соображений безопасности.
306неиспользуемыйЭтот код ответа больше не используется, в настоящее время зарезервирован.
307Temporary Redirect (Временная переадресация)Запрашиваемый ресурс на короткое время доступен по другому URI, указанному в поле Location заголовка. Имеет ту же семантику, что и 302 Found код ответа HTTP, за исключением того, что клиент не должен изменять используемый HTTP-метод: если использовался POST в первом запросе, он должен использовать POST и во втором запросе.
308Permanent Redirect (Постоянная переадресация)Это означает, что ресурс теперь постоянно находится по другому URI, указанному в поле Location заголовка. Имеет ту же семантику, что и код ответа HTTP 301 Moved Permanently, за исключением того, что клиент не должен изменять используемый HTTP-метод: если использовался POST в первом запросе, он должен использовать POST и во втором запросе.
Ошибки клиента
400Bad Request (Плохой запрос)Этот ответ означает, что сервер не смог понять клиентский запрос из-за синтаксической ошибки.
401Unauthorized (Не авторизован)Для получения запрошенного ответа требуется аутентификация. Это похоже на 403 ответ, но в этом случае возможна аутентификация. В заголовке ответ должен содержать поле WWW-Authenticate с перечнем условий аутентификации.
402Payment Required (Требуется оплата)Этот код ответа зарезервирован для будущего использования. Первоначальная цель создания этого кода заключалась в использовании его для цифровых платежных систем, однако в настоящее время он не используется.
403Forbidden (Запрещено)Сервер понял запрос, но он отказывается его выполнять из-за ограничений в доступе для клиента к указанному ресурсу. Клиент не имеет прав доступа к контенту, поэтому сервер отказывается дать правильный ответ. Наиболее вероятными причинами ограничения может служить попытка доступа к системным ресурсам веб-сервера (например, файлам .htaccess или .htpasswd) или к файлам, доступ к которым был закрыт с помощью конфигурационных файлов.
404Not Found (Не найдено)Сервер не может найти запрашиваемый ресурс. Основная причина — ошибка в написании адреса Web-страницы. Этот код ответа, вероятно, является самым известным из-за его распространенности в Интернете.
405Method Not Allowed (Метод не поддерживается)Метод запроса известен серверу, но был отключен и не может быть использован. В ответе сервер должен указать доступные методы в заголовке Allow, разделив их запятой. Два обязательных метода: GET и HEAD никогда не должны быть отключены и не должны возвращать этот код ошибки.
406Not Acceptable (Недопустимо)Запрошенный URI не может удовлетворить переданным в заголовке характеристикам. Если метод был не HEAD, то сервер должен вернуть список допустимых характеристик для данного ресурса.
407Proxy Authentication Required (Требуется аутентификация прокси)Этот ответ похож на 401, но здесь проверка подлинности (аутентификация) производится для прокси-сервера.
408Request Timeout (Истекло время ожидания)Время ожидания сервером передачи от клиента истекло. Это означает, что сервер хотел бы отключить это неиспользуемое соединение. Обратите внимание, что некоторые серверы просто закрывают соединение без отправки этого сообщения.
409Conflict (Конфликт)Этот ответ будет отправлен, когда запрос будет конфликтовать с текущим состоянием сервера. Такое возможно, например, когда два клиента пытаются изменить ресурс с помощью метода PUT.
410Gone (Удален)Этот ответ будет отправлен, когда запрашиваемый контент по указанному URL был удален с сервера. Серверу в этом случае неизвестно и местоположение альтернативного документа (например, копии).
411Length Required (Требуется длина)Сервер отклонил запрос, потому что поле заголовка Content-Length не определено, а сервер требует его. Такой ответ естественен для запросов типа POST и PUT. Например, если по указанному URI производится загрузка файлов, а на сервере стоит ограничение на их объем.
412Precondition Failed (Условие ложно)Клиент указал условные поля в заголовках запроса (например, If-Match и др.), которые сервер не выполняет.
413Payload Too Large. Ранее — Request Entity Too Large (Запрошен слишком большой объект)Объект запроса больше ограничений, которые определены на сервере. Сервер может закрыть соединение, чтобы прекратить дальнейшую передачу запроса или вернуть поле заголовка Retry-After с указанием времени, по истечении которого можно повторить аналогичный запрос.
414URI Too Long. Ранее — Request-URI Too Long (Запрошен слишком большой URI)Запрошенный клиентом URI слишком длинный для обработки сервером. Такую ошибку можно спровоцировать, например, когда клиент пытается передать длинные параметры через метод GET, а не POST.
415Unsupported Media Type (Неподдерживаемый тип данных)Формат запрашиваемых типов данных не поддерживается сервером, поэтому сервер отклоняет запрос. По каким-то причинам сервер отказывается работать с указанным типом данных при данном методе.
416Range Not Satisfiable. Ранее — Requested Range Not Satisfiable (Диапазон недостижим)Диапазон, указанный полем заголовка Range в запросе, не может быть выполнен; возможно, что диапазон находится вне размера данных целевого URI и отсутствует поле If-Range.
417Expectation Failed (Ошибка ожидания)Этот код ответа означает, что ожидание, указанное полем заголовка Expect запроса, не может быть выполнено сервером.
421Misdirected Request (Неверно адресованный запрос)Запрос был перенаправлен на сервер, не способный дать ответ.
451Unavailable For Legal Reasons (Недоступно по юридическим причинам)Доступ к ресурсу закрыт по юридическим причинам (например, по требованию органов государственной власти или по требованию правообладателя в случае нарушения авторских прав). Введено в черновике IETF за авторством Google, при этом код ошибки является отсылкой к роману Рэя Брэдбери «451 градус по Фаренгейту». Был добавлен в стандарт 21 декабря 2015 года.
Ошибки сервера
500Internal Server Error (Внутренняя ошибка сервера)Сервер столкнулся с ситуацией, когда он не знает, как ему поступить. Любая внутренняя ошибка сервера, которая не входит в рамки остальных ошибок класса.
501Not Implemented (Не реализовано)Метод запроса не поддерживается сервером и не может быть обработан. Типичный ответ для случаев, когда сервер не понимает указанный в запросе метод. Единственными методами, которые требуются сервером для поддержки (и, следовательно, не должны возвращать этот код), являются GET и HEAD.
502Bad Gateway (Плохой шлюз)Этот ответ об ошибке означает, что сервер, работая в качестве шлюза для получения ответа, необходимого для обработки запроса, получил неверный ответ. Сервер, выступая в роли шлюза или прокси-сервера, получил недействительное ответное сообщение от вышестоящего сервера.
503Service Unavailable (Сервис недоступен)Сервер не готов обрабатывать запрос. Сервер временно не имеет возможности обрабатывать запросы по техническим причинам (обслуживание, перегрузка и прочее). Обратите внимание, что вместе с этим ответом следует отправить удобную для пользователя страницу, объясняющую проблему. Эти ответы должны использоваться для временных условий, и HTTP-заголовок Retry-After должен, по возможности, содержать расчетное время до восстановления обслуживания. Веб-мастер также должен следить за заголовками, связанными с кэшированием, которые отправляются вместе с этим ответом, так как эти временные ответы обычно не кэшируются.
504Gateway Timeout (Шлюз не отвечает)Этот ответ об ошибке предоставляется, когда сервер действует как шлюз и не может получить ответ вовремя. Сервер в роли шлюза или прокси-сервера не дождался ответа от вышестоящего сервера для завершения текущего запроса.
505HTTP Version Not Supported (Версия HTTP не поддерживается)Версия протокола HTTP, используемая в запросе, не поддерживается сервером (либо сервер отказывается поддерживать указанную версию).
509Bandwidth Limit Exceeded (Исчерпана пропускная ширина канала)Этот код используется при превышении веб-площадкой отведенного ей ограничения на потребление трафика. В данном случае владельцу площадки следует обратиться к своему хостинг-провайдеру. В настоящий момент данный код не описан ни в одном RFC и используется только модулем «bw/limited», входящим в панель управления хостингом cPanel, где и был введен.


 



Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *