Коды ответа HTTP
Код ответа (состояния) HTTP показывает, был ли успешно выполнен определённый HTTP запрос. Коды сгруппированы в 5 классов:
Если вы получили код ответа (состояния), которого нет в данном списке, в таком случае он является не стандартизированным кодом ответа (состояния), вероятней всего он кастомный сервера.
Следующая таблица содержит список всех кодов и их значения:
Этот ответ отсылается, когда веб сервер после выполнения server-driven content negotiation, не нашёл контента, отвечающего критериям, полученным из user agent.
Этот ответ отсылается, когда запрос конфликтует с текущим состоянием сервера.
Этот ответ отсылается, когда запрашиваемый контент удалён с сервера.
Размер запроса превышает лимит, объявленный сервером. Сервер может закрыть соединение, вернув заголовок Retry-After
Коды ошибок HTTP: полный список ошибок сервера
Умные люди придумали коды, по которым можно определить, что произошло с HTTP-запросом. Успешен ли он, произошло ли перенаправление. Или же все закончилось ошибкой. Как раз об ошибках и будем говорить в этой статье. Вкратце расскажу, какие они бывают и с чем связаны.
А еще тут будет парочка забавных (и не очень) пикч и анимаций на тему описанных ошибок. Хоть какое-то развлечение.
Ошибки со стороны клиента (4xx)
Для начала перечислим коды ошибок на стороне клиента. Вина за их появление ложится на плечи обоих участников соединения.
400 Bad Request
Такой ответ от браузера можно получить в том случае, если сервер не смог правильно отреагировать на запрос со стороны пользователя. Часто код 400 возникает при попытке клиента получить доступ к серверу без соблюдения правил оформления синтаксиса протокола передачи гипертекста (HTTP). Повторный запрос не стоит отправлять до тех пор, пока не будет исправлена ошибка (или несколько из них).
401 Unauthorized
Код 401 возникает при попытке клиента получить доступ к серверу, используя неправильные данные для авторизации. По сути, используется, когда пользователь вводит неправильный логин и пароль на ресурсе, где требуется эта информация для входа. Читайте: Как исправить ошибку 401
402 Payment Required
Эта ошибка сообщает клиенту о том, что для успешного выполнения запроса ему необходимо оплатить доступ к серверу. Изначально код 402 должен был стать неким стандартом для цифровой валюты и оплаты контента в сети. Но не срослось. До сих пор нет единого решения по поводу того, как должны выглядеть платежи в сети. Также нет и единого решения по поводу того, как стоит использовать 402.
Все еще считается, что код существует с расчетом на будущее. Сейчас почти не используется и поддерживается не всеми браузерами.
403 Forbidden
Почти то же, что и 401. Сервер снова не разрешает к нему подключиться, хотя с запросом все в порядке. Просто нет доступа. Причем повторная авторизация с другими логином и паролем никак не помогут. Все вопросы к владельцам сервера (но не всегда). Инструкция по устранению ошибки.
Творчество на тему знаменитой киносаги
404 Not Found
Легендарная ошибка, ставшая популярным мемом. 404 оповещает клиента о том, что его запрос ведет в никуда. Код возникает, когда пользователь пытается попасть на страницу, которой не существует. Например, когда случайно ошибается при вводе ссылки и вводит ее с опечаткой. Или же пытается получить доступ к странице, которой на сайте уже нет.
В отличие от других кодов, страницу с 404 частенько кастомизируют, создавая для нее уникальный дизайн. Мало того, что это выглядит симпатичнее, так еще и полезнее для посетителей. Можно прямо на странице с ошибкой разъяснить, что произошло и как дальше действовать.
И таких вариаций тысячи. Каждый пытается добавить в оформление что-то свое.
405 Method Not Allowed
405 сообщает клиенту о том, что метод, используемый при запросе, не разрешен. В качестве примера можно привести попытку со стороны клиента ввести данные в форму с помощью GET, когда она работает только с POST. Ну и в таком же духе.
406 Not Acceptable
Ошибка 406 сообщает о том, что страница передает контент, который не может быть распознан клиентом. Возможно, проблема в методе сжатия или в формате страницы. Иногда сюда же приплетают неправильные настройки кодировки.
Этот код редко используют на практике, так как его появления можно избежать, предоставив пользователю информацию на сайте в том виде, который его браузер способен принять. Посетитель сайта по итогу получит не то, что ожидал, но хотя бы не ошибку.
407 Proxy Authentication Required
Этот код тоже похож на 401. Только на этот раз логин и пароль нужны не для основного сервера, а для прокси, который находится между клиентом и сервером. Обычно в теле ошибки содержится информация о том, как можно правильно пройти авторизацию и получить доступ к ресурсу.
408 Request Timeout
408 говорит нам о том, что сервер пожелал разорвать соединение с клиентом, потому что оно никак не используется. Происходит это в том случае, если сервер буквально устал ждать, пока наладится соединение с ним. Поэтому такую ошибку часто можно лицезреть после очень долгой и безуспешной загрузки какого-нибудь сайта.
Многие серверы не отправляют никаких сообщений, а просто прерывают соединение по той же причине. На запрос уходит больше времени, чем на то полагается.
В Мистере Роботе частенько называли серии в честь ошибок HTTP (весь четвертый сезон в нумерации 4хх). В честь 408, например, назвали восьмую серию четвертого сезона
409 Conflict
Сообщение о конфликте возникает, когда запрос со стороны клиента не соответствует тому, чего ожидает сервер. В качестве примера приводят проблемы при проверки версий, когда пользователь пытается с помощью метода PUT загрузить на сервер новый файл, но там уже имеется более новая версия того же файла. Конфликта версий можно легко избежать, загрузив корректную версию.
410 Gone
Своего рода аналог 404. Разница лишь в том, что 410 намекает на перманентность отсутствия страницы. Так что этот код стоит использовать, когда на 100% уверен, что страница ушла в небытие (ну или с текущего адреса) навсегда. В любом другом случае есть универсальный 404.
411 Length Required
411 оповещает пользователя о том, что сервер не желает принимать запрос со стороны клиента, потому что в нем не определен заголовок Content-Length. Да, это первый код в подборке, который смогут понять только люди, сведущие в настройке серверов. По-простому уложить сущность HTML-заголовков в этот материал не получится.
412 Precondition Failed
Еще один код, сообщающий о том, что сервер отклонил запрос пользователя и не разрешает доступ к выбранному ресурсу. Проблемы возникают при неправильной настройке работы методов, отличающихся от GET и HEAD.
413 Payload Too Large/Request Entity Too Large
Код 413 говорит нам, что запрос, который посылает клиент на сервер, слишком большой. Поэтому сервер отказывается его обрабатывать и разрывает соединение. Обычно это происходит при попытке загрузить на ресурс какой-то файл, превышающий ограничение, выставленное в настройках сервера. Соответственно, решается проблема изменением настроек сервера.
414 URI Too Long
Чем-то этот код похож на предыдущий. Здесь тоже идет речь о превышение лимита. Только теперь это касается не запроса со стороны клиента, а длины URI. То есть ссылки. Выходит, что адрес, используемый клиентом, больше, чем тот, что может обработать сервер. Как-то так.
Такая ошибка иногда выскакивает при попытке взломать ресурс. Сайт так реагирует на слишком частые попытки воспользоваться потенциальными дырами в безопасности.
415 Unsupported Media Type
Ошибка 415 возникает, когда клиент пытается загрузить на сервер данные в неподходящем формате. В таком случае сервер просто отказывается принимать посылаемые файлы и разрывает соединение. Как и в случае с 413.
416 Range Not Satisfiable
Подобный ответ можно ожидать, если клиент запрашивает у сервера определенные данные, но эти данные на сервере не соответствуют запросу. То есть, грубо говоря, вы просите у сервера какой-то набор данных с заранее заданным размером, а в итоге оказывается, что размер этих данных меньше, чем объем, указанный в запросе. Серверу ничего не остается, кроме как послать вас, ведь он не обучен поведению в таких ситуациях.
417 Expectation Failed
Такая ошибка высвечивается, когда ожидания сервера не совпадают с данными в запросе клиента. Сведения об ожиданиях прописываются в заголовке Expect заранее. Так что можно ознакомиться с ними, чтобы выяснить, как решить названную проблему.
418 I’m a teapot
Код 418 можно увидеть, если сервер откажется варить кофе, потому что он чайник. Это первоапрельская шутка. Естественно, 418 не используется нигде всерьез и просто существует как дань памяти программистам-юмористам, придумавшим это в 1998 году.
У Google получился такой симпатичный чайник
421 Misdirected Request
Появляется когда запрос клиента переправляется на сервер, который не может дать на него адекватный ответ. Например, если запрос был отправлен на ресурс, который вообще не настроен обрабатывать запросы извне.
Чтобы исправить проблему, можно попробовать переподключиться к ресурсу заново или попробовать другое соединение.
422 Unprocessable Entity
Код 422 говорит, что сервер вроде бы принял запрос, понял его, все хорошо, но из-за семантических ошибок корректно обработать не смог. Значит, где-то в запросе затаилась логическая ошибка, мешающая корректному взаимодействию клиента и сервера. Надо ее найти и исправить.
423 Locked
Обычно на этот код напарываются, когда запрашиваемый ресурс оказывается под защитой. Используемые клиентом методы блокируются на уровне сервера. Это делается, чтобы обезопасить данные, хранящиеся на защищенной странице. Без логина и пароля выудить информацию с такого сервера не получится.
424 Failed Dependency
424 сообщает о том, что для выполнения запроса со стороны клиента успешно должна завершиться еще одна или несколько параллельных операций. Если какая-то из них «провалится», то «помрет» все соединение сразу, и обработать запрос до конца не получится. Аналогичное происходит, если некорректно был обработан один из предыдущих запросов.
425 Too Early
Появляется в ответ на запрос, который может быть моментально запущен заново. Сервер не рискует и не берется за его обработку, чтобы не подставиться под так называемую «атаку повторного воспроизведения».
426 Upgrade Required
Тут нам прямо сообщают, что сервер не желает с нами общаться, пока мы не перейдем на более современный протокол. Наткнуться на такую ошибку очень тяжело, но в случае появления, скорее всего, будет достаточно установить браузер посвежее.
428 Precondition Required
428 выскакивает, если пользователь отправляет запрос на сервер, но получает некорректные или неактуальные данные. Так ресурс оповещает о необходимости внести в запрос информацию о предварительных условиях обработки данных. Только так он сможет гарантировать получение клиентом нужной информации.
429 Too Many Requests
Здесь все просто. Ошибка появляется, когда клиент отправляет на сервер слишком много запросов в короткий промежуток времени. Очень похоже на поведение взломщиков. По этой причине запрос моментально блокируется.
431 Request Header Fields Too Large
Из названия понятно, что ошибка с кодом 431 появляется из-за того, что в запросе клиента используются слишком длинные заголовки (неважно, один или несколько из них). Исправляется это с помощью сокращения заголовков и повторной отправки запроса. В теле ошибки обычно отображается краткая информация о том, как пользователь может решить эту проблему самостоятельно.
444 No Response
Этот код вам вряд ли удастся увидеть. Он отображается в лог-файлах, чтобы подтвердить, что сервер никак не отреагировал на запрос пользователя и прервал соединение.
449 Retry With
Код используется в расширениях компании Microsoft. Он сигнализирует о том, что запрос от клиента не может быть принят сервером. Причиной становятся неверно указанные параметры. Сама 449 ошибка говорит о необходимости скорректировать запрос и повторить его снова, подготовив к работе с сервером.
450 Blocked by Windows Parental Controls
450 код увидят дети, попавшие под действие системы «Родительский контроль» компании Microsoft. По сути, ошибка говорит о том, что с компьютера попытались зайти на заблокированный ресурс. Избежать этой ошибки можно изменением параметров родительского контроля.
451 Unavailable For Legal Reasons
Этот код сообщает клиенту, что он не может попасть на запрашиваемый ресурс из юридических соображений. Скорее всего, доступ был заблокирован из-за каких-нибудь государственных санкций, нового законодательства или цензуры со стороны властей. В общем, все вопросы к государству и провайдеру связи.
Коды ответов протокола HTTP
Access_log содержит следующую информацию:
Код состояния HTTP — это трехзначный код ответа на HTTP-запрос. Он предназначен для использования автоматами, поясняющая фраза после него предназначена для пользователей.
Первая цифра кода состояния определяет класс ответа:
1xx: Информационные коды — запрос получен, продолжается обработка.
2xx: Успешные коды — запрос был успешно получен, понят и выполнен.
3xx: Коды перенаправления — для выполнения запроса должны быть предприняты дальнейшие действия агента пользователя (программы, принимающей ответ на запрос).
4xx: Коды ошибок клиента — запрос имеет плохой синтаксис или не может быть выполнен. Также указывает, является ли ситуация временной или постоянной.
5xx: Коды ошибок сервера — сервер не в состоянии выполнить допустимый запрос или выполнил его с ошибкой.
Просмотр кода ответа протокола HTTP
Один из самых простых способов увидеть коды ответа — зайти в инструменты разработчика в браузере. Например, для браузеров google chrome и mozilla firefox достаточно:
На скриншоте показаны инструменты разработчика google chrome, коды ответа есть в колонке Status.
Наиболее распространённые коды ответов протокола HTTP
Список прочих кодов ответов протокола HTTP
405 Method Not Allowed (Метод не дозволен)- метод, определенный в строке запроса (Request-Line) не дозволено применять для ресурса, идентифицированного запрашиваемым URI (Request-URI).
410 Gone (Удален)- запрошенный ресурс больше не доступен на сервере, и нет никакого адреса для перенаправления запроса.
Коды ответов сервера. Ошибки 404, 407, 408, 500, 502, 503 и другие статусы.
Коды ответов сервера или, как их еще называют, коды состояния HTTP (англ. HTTP Status Codes) передаются в заголовке ответа сервера на запрос клиента по протоколу HTTP, и содержат информацию о том, насколько серверу удалось обработать запрос клиента.
Звучит сложновато? На самом деле ничего сложного в этом нет. Смотрите..
Для начала нужно разобраться, что такое клиент и сервер, и, как говорится, зачем они вам. Клиент-серверная архитектура лежит в основе привычного нам интернета. Контент сайтов и приложений находится на серверах, и для доступа к нему используются программы-клиенты, которые умеют взаимодействовать с серверами (они также являются программами) по различным сетевым протоколам (каналам), в частности по протоколу HTTP.
Когда какой-либо веб-клиент (браузер или поисковый робот) запрашивает у сервера информацию (страницу, файл или другие данные), сервер пытается выполнить запрос и отдать результат клиенту (ведь клиент всегда прав 😉 Если серверу это удается, он сообщает об этом (в заголовке ответа) и отдает (в теле ответа) то, что нужно клиенту. Но бывает и такое, что сервер не может найти нужный файл/страницу, или он перегружен запросами, или для доступа к контенту нужна авторизация, или еще что-то. Обо всем этом он также должен сообщить клиенту. Клиент и сервер общаются они при помощи кодов. Получив ответ от сервера, клиент должен его обработать согласно коду состояния.
Эти коды стандартизированы и используются всеми серверами и клиентами, которые взаимодействуют при помощи протокола HTTP. Они состоят из 3 цифр, первая из которых указывает на класс (категорию) кода статуса. Существует 5 классов:
Кодов, как вы ведите, очень много, и вам, конечно же, не нужно забивать ими голову. Но некоторые, наиболее часто встречающиеся, полезно знать.
Давайте рассмотрим указанные выше классы с их наиболее распространенными кодами и особенно подробно разберем последние два класса кодов.
1хх Информационные коды
Это коды, при помощи которых сервер информирует клиента о том, что его запрос принят в обработку. При этом, от клиента не требуется никаких дальнейших действий.
100 Continue
Этот код ответа означает, что сервер удовлетворён начальными сведениями о запросе, и клиент может продолжать. Получение такого HTTP кода может потребоваться, если клиенту нужно отправить на сервер большой объем данных (например, через метод POST) и перед отправкой этих данных нужно убедиться, в том, что сервер сможет их принять.
101 Switching Protocols
При помощи HTTP кода 101 сервер предлагает клиенту переключиться на более подходящий для указанного ресурса протокол. Список предлагаемых протоколов передается в заголовке ответа Update.
102 Processing
Код ответа 102 информирует клиента о том, что полученный от него запрос принят в обработку, но для его выполнения потребуется время. Получив такой ответ, клиент должен дожидаться выполнения запроса и не разрывать соединение с сервером (сбросить таймер и ожидать следующего ответа).
2хх Успешное выполнение
Коды этого класса передаются, если запрос от клиента был успешно получен, принят, обработан и выполнен сервером.
200 OK
Код статуса 200 OK является, наверное, самым важным, т.к. он означает, что сервер успешно выполнил то, что от него хотел клиент. Например, если клиент запрашивал определенную страницу, в ответе сервера, вместе с HTTP статусом 200, он также найдет и ее HTML-код. А если в запросе клиента были данные (например, заполненной формы регистрации), которые нужно было обработать, в ответе, помимо кода 200, будет информация о результате обработки.
201 Created
Этот HTTP код сообщает клиенту о том, что в результате его запроса был создан новый ресурс (например, запись в блоге или комментарий). Обычно, этот код передается в ответ на запрос с методом PUT. Кроме кода 201, в ответе сервера также передается ссылка на созданный ресурс.
202 Accepted
Код 202 означает, что запрос принят в обработку, но еще не выполнен, и т.к.его выполнение может занять длительное время, клиенту не обязательно ждать результата. При этом нет гарантии, что запрос будет выполнен, он может быть и отклонен.
203 Non-Authoritative Information
Данный код означает, что сервер понял и принял запрос, но возвращаемая им информация могла устареть или является неактуальной, т.к. взята из другого источника (например, с другого сервера или из резервной копии) и поэтому, полученные данные не стоит воспринимать как авторитетные.
204 No Content
HTTP код 204 означает, что сервер успешно обработал запрос, но в своем ответе не передает каких либо данных, и поэтому клиенту не следует обновлять содержимое документа.
206 Partial Content
Этот код сообщает клиенту о том, что сервер передает только часть запрошенного ресурса, т.к. в своем запросе клиент указал диапазон данных (заголовок диапазона (Range Header). Это позволяет докачивать прерванные загрузки или разбивать скачивание на несколько потоков).
3хх Перенаправление
При этом, перейдя по новому адресу, который возвращается в ответе сервера вместе с кодом этого класса, клиент может быть повторно перенаправлен дальше, а потом еще дальше и т.д. Он также может быть перенаправлен и по тому адресу, где уже был и тогда перенаправление зацикливается. Поэтому при множественных перенаправлениях клиенты обычно спрашивают у пользователя разрешение.
300 Multiple Choices
HTTP код 300 означает, что по указанному адресу находятся сразу несколько ресурсов (например, файлы с разным MIME-типом, разные языковые версии страницы, разные форматы видео- или аудио-ресурса), и сервер предлагает клиенту выбрать из списка ресурсов, который также передается в ответе.
301 Moved Permanently

302 Found (ранее Moved Temporarily)
Код 302 Found используется сервером для сообщения клиенту о том, что запрашиваемый ресурс был (временно) перемещен по новому адресу, где его все-таки удалось найти. Вместе со статусом 302 сервер передает заголовок с новым адресом.
Многие клиенты, в нарушение стандарта, для перехода по новому адресу используют метод GET, даже если в начальном запросе использовался другой метод (POST/PUT/DELETE), что может привести к непредвиденным последствиям. Чтобы этого избежать, следует использовать статусы 303 и 307.
303 See Other
Этот код означает, что сервер успешно обработал запрос клиента, но предлагает ему перейти по другому адресу (также передается в этом ответе), используя метод GET.
Такое можно часто встретить на сайтах, работающих на движке WordPress. Когда вы что-то пишете в поле поиска и нажимаете на клавишу Enter, открывается не список результатов поиска, а наиболее релевантный результат. Происходит примерно следующее: клиент отправляет запрос с поисковой фразой методом POST на сервер, где установлен WP, который выбирает наиболее подходящий результат и возвращает ответ с кодом 303 See Other и адресом выбранной статьи. Получив этот ответ, клиент (браузер) переходит по указанному адресу.
304 Not Modified
Код статуса HTTP 304 Not Modified означает, что хотя запрашиваемый ресурс и был найден по указанному адресу, его версия не отличается от указанной в заголовке запроса (If-Modified-Since), поэтому нет необходимости пересылать его снова.
307 Temporary Redirect
Этот код означает, что запрашиваемый ресурс находится по другому адресу (он тоже передается в ответе), но последующие запросы нужно направлять по старому адресу. В отличие от кода 302, этот статус не позволяет менять метод запроса, т.е. если в первом запросе использовался метод POST, то и в запросе по новому адресу должен использоваться POST.
308 Permanent Redirect
Этот HTTP код, как и код 301 означает, что запрашиваемый ресурс окончательно перенесен на новое место, но в отличие от него, как и 307 код, не позволяет менять метод запроса.
4xx Ошибка на стороне клиента
Данный класс содержит коды, информирующие, что сервер не смог вернуть запрашиваемый ресурс по вине клиента (допущена ошибка в запросе или не выполнены действия, которые должны предшествовать запросу и т.д.) В большинстве случаев вместе с кодом ошибки сервер возвращает пояснение, в котором сказано, что за ошибка произошла, является ли она временной или постоянной. Это пояснение клиент должен вывести пользователю.
Ошибка 400 Bad Request
Что означает 400 Bad Request?
Дословно Bad Request переводится как «плохой запрос». При помощи HTTP кода 400 сервер сообщает клиенту, что не может обработать запрос из-за допущенной в нем синтаксической ошибки.
Не смотря на то, что класс кодов 4хх говорит о том, что ошибка произошла на стороне клиента, часто бывает, что сервер из-за неправильной конфигурации или ошибки в скриптах не может обработать стандартный запрос клиента и выдает ошибку 400.
Как исправить 400 Bad Request?
Ниже описаны некоторые характерные причины ошибки 400 и способы их устранения.
На стороне клиента
На стороне сервера
Ошибка 401 Unauthorized
Что означает HTTP статус 401 Unauthorized?
Unauthorized переводится как «неавторизован». При помощи кода 401 сервер сообщает клиенту, что для доступа к ресурсу требуется авторизация, и клиент должен отправить в следующем запросе заголовок WWW-Authenticate с именем пользователя и паролем. В противном случае, либо если передано неверное имя или пароль, сервер снова вернет ошибку 401.
Как исправить 401 Unauthorized?
Если вы пользователь сайта
Если вы владелец сайта
Ошибка 402 Payment Required
Этот HTTP статус пока не получил широкого распространения. Код 402 зарезервирован для использования в будущем. Сейчас его можно встретить, например, при превышении дневного лимита запросов к Google Developers API, ну или в названии одного из эпизодов сериала Mr. Robot 😉
Ошибка 403 Forbidden
Что означает 403 Forbidden?
Дословно Forbidden переводится как «запрещен». Когда сервер возвращает HTTP код 403 Forbidden это значит, что, несмотря на то, что переданный клиентом запрос содержит валидные данные и понятен, сервер все-таки отказывает в его выполнении, и клиенту не следует пытаться повторить этот запрос.
Ошибка 403 может появляться в двух случаях:
Как исправить 403 Forbidden?
Если вы посетитель сайта
Если вы владелец сайта
Ошибка 404 Not Found
Что означает 404 Not Found?
Это наверное самая часто встречающаяся, и потому, самая широко известная ошибка. Дословно Not Found переводится как «не найдено». Когда сервер возвращает HTTP код 404 Not Found это значит, что он не смог найти по указанному адресу запрашиваемый ресурс. При этом сервер как бы не исключает возможности того, что ресурс может появиться снова, поэтому не запрещает клиенту обращаться с данным запросом позже.
Иногда сервер может возвращать статус 404 даже если ресурс найден, но доступ к нему ограничен, так сказать, чтобы никто не догадался.
Как исправить 404 Not Found?
Если вы посетитель сайта
Если вы владелец сайта
Ошибка 405 Method Not Allowed
Дословно Method Not Allowed переводится как «метод не разрешен». При помощи кода 405 сервер сообщает клиенту, о том, что используемый тип HTTP-запроса по данному адресу не поддерживается. Например, клиент передает GET-запрос по адресу, где ожидаются данные формы, отправленные через POST, или клиент пытается обновить доступный только для чтения ресурс через метод PUT.
Ошибка 406 Not Acceptable
Ошибка 407 Proxy Authentication Required
Что означает 407 Proxy Authentication Required?
Дословно Proxy Authentication Required переводится как «требуется авторизация прокси». Если в ответе сервера передается HTTP код 407, это значит, что запрос клиента не может быть выполнен, т.к. отсутствуют данные для авторизации на прокси-сервере, через который производится обмен данными. Этот код по смыслу похож на код 401 Unauthorized (Неавторизован), но в отличие от него, говорит о том, что клиенту нужно авторизоваться не на самом сервере, а на прокси-сервере, который находится между ними.
Как исправить 407 Proxy Authentication Required?
Не смотря на то, что коды класса 4хх свидетельствуют об ошибках на стороне клиента, причиной ошибки 407 Proxy Authentication Required может быть и некорректная настройка основного сервера или прокси-сервера, через который передается запрос. Все же, начать поиски причины этой ошибки следует с клиента.
Если вы посетитель сайта
Если вы владелец сайта
408 Request Timeout
Что означает 408 Request Timeout?
Дословно Request Timeout переводится как «тайм-аут запроса». Если в ответе сервера передается HTTP код 408, это значит, что время ожидания запроса клиента истекло и сервер разрывает соединение. При этом повторные запросы по данному адресу не запрещаются.
Как исправить 408 Request Timeout?
Если вы посетитель сайта
Если вы владелец сайта
Ошибка 409 Conflict
Что означает 409 Conflict?
Дословно Conflict переводится как «Конфликт». Сервер возвращает HTTP код 409 в случае конфликтного обращения к ресурсу, например, когда два клиента пытаются изменить его при помощи метода PUT, либо клиент пытается загрузить на сервер с системой контроля версий файл, который старше уже загруженного.
В основном, код 409 отдает не сам сервер, а работающие на нем скрипты (CMS, системы контроля версий и т.д.)
Как исправить 409 Conflict?
Ошибка 410 Gone
HTTP статус 410 Gone означает, что запрашиваемый ресурс удален и больше не будет доступен по данному адресу. Если клиентом является поисковый робот, он должен удалить ресурс из своего индекса.
Ошибка 411 Length Required
Ошибка 412 Precondition Failed
При помощи HTTP кода 412 сервер сообщает, что запрашиваемый ресурс не соответствует требованиям, которые клиент указал в заголовках запроса.
Ошибка 413 Payload Too Large
Данный код информирует о том, что сервер не может обработать запрос, т.к. он слишком большой.
Ошибка 414 URI Too Long
HTTP код 414 сообщает клиенту о том, что запрос не может быть обработан из-за слишком длинного URI. Основной причиной ошибки является передача большого объема данных (например, из формы) через метод GET вместо POST.
Ошибка 415 Unsupported Media Type
HTTP код 415 означает, что запрос клиента отклонен т.к. содержит данные, тип которых ресурс не может обработать. Это может случиться, например, при загрузке на сервер файла, формат которого не поддерживается обработчиком загрузки.
Ошибка 416 Range Not Satisfiable
Ошибка 417 Expectation Failed
Ошибка 418 I’m a teapot
Не смотря на то, что статус 418 является шуточным, его поддерживают некоторые популярные фреймворки (например, Django и Symfony). А Google сделал специальную страницу, которая возвращает HTTP код 418 и «наливает чай».
Ошибка 421 Misdirected Request
Этот код означает, что запрос был направлен серверу, который не способен вернуть ответ. HTTP статус 421 может возвращаться сервером, который не настроен на создание ответов для комбинации схемы и полномочий, включенных в URI запроса.
Ошибка 422 Unprocessable Entity
Данный статус свидетельствует о том, хотя запрос был правильно составлен и сервер его принял, он, все же, не может его обработать из-за какой-то семантической ошибки.
Ошибка 423 Locked
Этот код говорит от том, что обращение к ресурсу с использованием указанного в запросе метода заблокировано.
Ошибка 424 Failed Dependency
Ошибка 424 возвращается сервером если выполнение запроса зависит от другого запроса, который не был выполнен.
Ошибка 426 Upgrade Required
При помощи этого кода сервер сообщает клиенту о необходимости переключиться на другой протокол (например, SSL). Вместе со статусом 426 в ответе должен содержаться заголовок Upgrade с указанием нужного протокола.
Ошибка 428 Precondition Required
Ошибка 429 Too Many Requests
Что означает 429 Too Many Requests?
Дословно Too Many Requests переводится как «слишком много запросов». При помощи этого статуса сервер сообщает о том, что в сейчас не принимает запросы от данного клиента, т.к. за короткий промежуток времени их от него поступает слишком много. Вместе с кодом 429 сервер также передает заголовок Retry-After с указанием количества секунд, через которое клиент может повторить запрос.
Как исправить 429 Too Many Requests?
Ошибка 431 Request Header Fields Too Large
Ошибка 451 Unavailable For Legal Reasons
Этот код означает, что сервер блокирует доступ к ресурсу или набору ресурсов в связи с требованием закона. Код 451 является отсылкой к роману Рэя Брэдбери «451 градус по Фаренгейту», в котором описывает общество, где книги находятся под запретом.
5xx Ошибка на стороне сервера
В этот класс включены коды описывающие случаи, когда сервер знает, что совершил ошибку или не способен по каким-либо причинам выполнить запрос. Помимо кода ошибки, ответ сервера должен включать уточнение обстоятельств ее возникновения, а также информировать о том, является ли ситуация временной или постоянной (это касается всех методов, кроме HEAD). В свою очередь, клиент должен вывести эту информацию пользователю.
Ошибка 500 Internal Server Error
Что означает 500 Internal Server Error?
Дословно Internal Server Error переводится как «Внутренняя ошибка сервера». Ошибка 500 является дефолтной и возвращается, когда более специфичные статусы не подходят. Поэтому найти ее причину довольно сложно. Это может быть как синтаксическая ошибка в коде скрипта-обработчика, так и ошибка диска или отсутствие какого-либо программного модуля, а также еще много всего.
Как исправить 500 Internal Server Error?
Если вы посетитель сайта
Так как 500 это серверная ошибка, вы мало что можете сделать. Все же можно попробовать следующее:
Если вы владелец сайта
Ошибка 501 Not Implemented
При помощи HTTP кода 501 сервер сообщает о том, что механизм необходимый для выполнения запроса на нем пока не реализован. Эта ошибка обычно возникает, когда сервер не может обработать запрос указанным в нем методом.
Ошибка 502 Bad Gateway
Что означает 502 Bad Gateway?
Bad Gateway переводится на русский язык как «Неверный шлюз». Если в ответ на свой запрос клиент получает HTTP код 502, это значит, что сервер, к которому он обратился, выступает в роли прокси и, в свою очередь, получил неверный ответ от вышестоящего сервера.
Причин возникновения данной ошибки может быть несколько. Вот несколько наиболее вероятных:
Как исправить 502 Bad Gateway?
Если вы посетитель сайта
Если вы владелец сайта
Ошибка 503 Service Unavailable
Что означает 503 Service Unavailable?
Service Unavailable переводится на русский как «Сервис не доступен». HTTP статус 503 означает, что сервер не может обработать запрос т.к. в данный момент он перегружен запросами или находится на обслуживании (например, на нем идет обновление программного обеспечения).
Как исправить 503 Service Unavailable?
Если вы посетитель сайта
Если вы владелец сайта
Ошибка 504 Gateway Timeout
HTTP код 504 означает, что сервер, к которому обращается клиент, является шлюзом или прокси и он не смог выполнить запрос т.к. не дождался ответа от вышестоящего сервера.
Эта ошибка возникает в процессе взаимодействия серверов, поэтому вы, как посетитель сайта, вряд ли можете что-то сделать. Если вы столкнулись с ошибкой 504, пытаясь открыть какую-то страницу, попробуйте просто обновить ее при помощи Ctrl + F5 или зайти немного позже. Скорее всего, эта ошибка временная и возникла по причине того, что вышестоящий сервер в данный момент перегружен запросами, поэтому ваш прокси-сервер не может получить от него ответ в отведенные для этого рамки и разрывает соединение.
505 HTTP Version Not Supported
Код ответа 505 означает, что версия HTTP, указанная в запросе, сервером не поддерживается.
507 Insufficient Storage
Данный HTTP код сообщает клиенту о том, что на сервере не хватает места для выполнения запроса. Этот статус, в основном, используется для WebDAV клиентов, но может также заменять 413 Payload Too Large.
508 Loop Detected
Этот код свидетельствует о том, что сервер обнаружил бесконечный цикл, пытаясь обработать запрос.
В этой статье мы рассмотрели некоторые основные официальные коды ответов сервера, которые описаны в рабочих предложениях (RFC). Кроме них есть и неофициальные HTTP коды, специфичные для определенных программных продуктов и приложений (Apache, nginx, Cloudflare, AWS и др.). О них я расскажу в одной из следующих статей.















