Что означают коды ошибок HTTP?

Иногда возникают ситуации, когда при запросе сайта веб-браузером выдается ошибка. Такие ошибки имеют цифровой код и определенное описание. 

 (101-199) Информационные ответы 

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

  • 100 - Continue – принята первая часть запрос, клиент может продолжить его передачу.
  • 101 - Switching Protocols – сервисом выполняются определенные требования клиента, а также переключаются протоколы, что соответствует данным в поле заголовка Upgrade. 

(200-299) Успешные запросы клиента 

В данном диапазоне все запросы клиента выполнены успешно. 

  • 200 - OK – успешная обработка запроса клиента, а в ответе сервера имеются все запрашиваемые данные.
  • 201 - Created – такой код состояния может быть использован при смене URL. Помимо кода, сервером также выдается заголовок Location, в котором содержится вся информация о месте перемещения всех новых данных. 
  • 202 - Accepted – запрос принимается, но его обработка происходит не сразу. Тело содержимого ответа также может содержать определенную информацию о данной транзакции. Не предоставляются никакие гарантии того, что запрос будет удовлетворен, даже если во время приемы он был допустимым. 
  • 203 - Non-Authoritative Information – в заголовке содержимого имеется информация, которая была получена из локальной копии или от третьей стороны.
  • 204 - No Content – в ответе имеется только заголовок и код состояния, само тело ответа не дается. При получении такого ответа документ браузера не должен обновляться. Код может возвращаться обратно после того, как пользователь по пустым участкам изображения. 
  • 205 - Reset Content - происходит очистка формы, которая используется для дополнительных вводных данных, браузером. 
  • 206 - Partial Content – сервером возвращается только некоторая часть данных. Используется в ответе на запрос при указании заголовка Range. В заголовке Content-Range сервером должен указываться определенный диапазон, который входит в ответ. 

(300-399) Переадресация

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

  • 300 - Multiple Choices (несколько вариантов на выбор) – затребованный URL может включать несколько ресурсов. В возвращенном сервером теле содержимого должны находиться определенные данные о правильном выборе ресурса.
  • 301 - Moved Permanently (ресурс перемещен на постоянной основе) – требуемый URL сервер уже не использует, поэтому и не выполняется операция, которая указана в запросе. В заголовке Location предоставляются данные о новом местонахождении запрашиваемого документа. При последующих запросах необходимо уже указывать новый URL.
  • 302 - Moved Temporarily (ресурс временно перемещен) – временное перемещение затребованного URL. В заголовке Location указывается новое месторасположение. После получения кода состояния клиент должен разрешить запрос при помощи нового URL, но в дальнейшем пользоваться только старым. 
  • 303 - See Other (смотрите другой ресурс) – поиск затребованного URL осуществляется посредством указания другого URL, который находится в заголовке Location.
  • 304 - Not Modified (не изменился) – является кодом ответа на заголовок lf-Modified-Since, если не произошло изменение URL. Тело содержимого не присутствует, поэтому клиентом должна использоваться его локальная копия. 
  • 305 - Use Proxy (используйте прокси-сервер) – обращаться к запрашиваемому ресурсу необходимо посредством прокси-сервера, который указывается в поле Location. Также в этом поле имеется URL необходимого прокси-сервера. Запрос необходимо повторить получателю. 

(400-499) Неполные запросы клиента 

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

  • 400 - Bad Request (некорректный запрос) – сервер не понимает запрос из-за синтаксиса malformed. Запрос можно повторить, но только после проведения определенных модификаций. 
  • 401 - Unauthorized (нет разрешения) – пользователь должен подтвердить свою подлинность. В ответе должно присутствовать поле заголовка WWW-Authenticate с вызовом, который применяется к запрошенному ресурсу. Запрос может повториться, но уже с подходящим полем заголовка Authorization. Если в данном поле уже имеются рекомендации по установлению подлинности, то код состояния 401 показывает, что такие рекомендации не подходят для установления подлинности. 
  • 402 - Payment Required (требуется оплата) – код зарезервирован и будет использоваться в будущем, но он еще не реализован в HTTP. 
  • 403 - Forbidden (доступ запрещен) – отклонение запроса, так у сервера нет возможности ответить клиенту. 
  • 404 - Not Found (ресурс не найден) – по указанному URL уже не существует необходимого документа, то есть сервер не нашел ничего, что могло бы соответствовать данному запросу. 
  • 405 - Method Not Allowed (недопустимый метод) – в заголовке Allow отмечается, что применяемый клиентом метод не поддерживается. 
  • 406 - Not Acceptable (неприемлемый запрос) – идентифицируемый ресурс может генерировать только объекты с характеристикой содержимого, которые не согласуются с заголовками приема. 
  • 407 - Proxy Authentication Required (необходима регистрация на сервере-представителе) – указывает на необходимость установления подлинности клиента прокси-серверу. Прокси-сервером возвращается поле заголовка Proxy-Authenticate, где содержится определенный вызов. Запрос может быть повторен, но уже при указании подходящего поля заголовка. 
  • 408 - Request Timeout (время обработки запроса истекло) – запрос не осуществился клиентом за время ожидания сервером. Запрос можно повторить позже. 
  • 409 - Conflict (конфликт) – запрос не выполняется, так как существует конфликт с состоянием ресурса. Предполагается, что пользователь устранит конфликт и передаст запрос повторно. 
  • 410 - Gone (ресурса больше нет) – затребованный URL больше не т на сервере. 
  • 411 - Length Required (необходимо указать длину) – запрос не принимается сервером, так как не определен Content-Length. Запрос можно повторить, указав в поле заголовка Content-Length длину тела сообщения. 
  • 412 - Precondition Failed (не выполнено предварительное условие) – запрос не обрабатывается сервером, так как объект запроса намного больше, чем он может обработать. При таком раскладе возможно закрытие соединения. Если такое состояние временно, то сервер указывает время в заголовке Retry-After, через которое клиент может повторить попытку. 
  • 413 - Request Entity Too Large (запрашиваемый элемент слишком велик) – запрос не обрабатывается сервером из-за его огромной величины.
  • 414 - Request-URI Too Long (идентификатор ресурса в запросе слишком длинный) – запрос не обрабатывается сервером, так как его URL  довольно длинный. 
  • 415 - Unsupported Media Type (неподдерживаемый тип устройства) – отказ сервера в обслуживании запроса, так как запрошенным ресурсом не поддерживается формат объекта запроса. 

 (500-599) Ошибки сервера 

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

  • 500 - Internal Server Error (внутренняя ошибка сервера) – во время обработки запроса один из компонентов сервера столкнулся с определенной ошибкой конфигурации. 
  • 501 - Not Implemented (функция не реализована) – запрос клиента не может быть выполнен, так как для выполнения запроса необходима поддержка некоторых функциональных возможностей. Может выдаваться в случае, когда сервер не может распознать метод запроса. 
  • 502 - Bad Gateway (дефект шлюза) – сервер при работе в качестве прокси-сервера получил недопустимый ответ в цепочке запросов от следующего сервера. 
  • 503 - Service Unavailable (служба недоступна) – служба временно недоступна, но через некоторое время доступ может возобновиться. При наличии у сервера определенных данных, он может выдать ответ с заголовком Retry-After. 
  • 504 - Gateway Timeout (время прохождения через шлюз истекло) – шлюзом или сервером превышен лимит времени. 
  • 505 - HTTP Version Not Supported (неподдерживаемая версия HTTP) – сервером не поддерживается версия протокола HTTP, которая использовалась в запросе.
Обсуждение