за что отвечает группа кодов 3хх протокола http
HTTP протокол: основные правила Интернета, которые должен знать каждый веб-разработчик. Как браузер взаимодействует с сервером.
Тема 9: HTTP коды состояния. Классы кодов состояния HTTP сервера
Привет, читатель блога ZametkiNaPolyah.ru! Продолжим знакомиться с протоколом HTTP в рубрике серверы и протоколы и ее разделе HTTP протокол. Сегодня мы с тобой начнем разбираться с кодами состояния HTTP сервера, а конкретно эта публикация познакомит тебя с классами кодов состояния HTTP сервера: ты разберешься с тем, как HTTP сервер отвечает на запросы твоего браузера и, что значат все эти цифры, которые периодически появляются в окне твоего бразуера. Оговорюсь сразу, что всего в стандарте HTTP пять классов кодов состояния, а каждый класс содержит несколько кодов состояния, которые могут быть расширены в зависимости от HTTP приложения.
HTTP коды состояний. Классы кодов состояния HTTP сервера
HTTP коды 1хх – информационные коды. HTTP коды 2хх – успешные коды. HTTP код 3хх – коды перенаправления. HTTP код 4хх – коды ошибок клиента. HTTP код 5хх – коды ошибок сервера.
Если вы хотите узнать всё про протокол HTTP, обратитесь к навигации по рубрике HTTP протокол. Код состояния – это элемент ответа HTTP сервера, который представляет собой три цифры, первая цифра показывает к какому классу состояния относится тот или иной код состояния. В HTTP насчитывают всего пять классов кодов состояний: 1хх, 2хх, 3хх, 4хх, 5хх. HTTP коды состояний расширяемы, любой разработчик сервера может добавлять свои коды. Каждый код состояния очень тесно связан с HTTP методами: если метод – это элемент HTTP запроса, то код состояния это HTTP ответ сервера, который означает то, как сервер понял запрос.
Давайте сведем HTTP коды состояний в одну таблицу, разделив коды по классам и дадим описание каждому классу состояния HTTP сервера.
Номер | HTTP код состояния и его описание |
1 | HTTP коды состояний 1xx: информационные коды состояния Такой код состояния сервер высылает в том случае, когда запрос получен, но еще не обработан. |
2 | HTTP коды состояний 2xx: успешные коды состояния Сервер отправит вам такой код в том случае, когда он успешно принял и обработал HTTP сообщение клиента. |
3 | HTTP коды состояний 3xx: коды перенаправления Если вы получили от сервера код состояния, начинающийся на тройку, то это означает, что нужны дополнительные действия, чтобы завершить процесс обработки HTTP запроса. |
4 | HTTP коды состояний 4xx: коды ошибок клиента Если вы увидели код состояния, который начинается с четверки, то это означает, что произошла ошибка по вине клиента. |
5 | HTTP коды состояний 5xx: коды ошибок сервера Код состояния, начинающийся с пятерки, говорит о том, что произошла ошибка на стороне сервера. |
Обычно помимо кода состояния сервер высылает пояснения клиенту в виде HTTP объекта и при помощи полей заголовка. Мы рассмотрели классы кодов состояний HTTP сервера, давайте теперь рассмотрим каждый класс и каждый код состояния HTTP протокола по отдельности.
Коды ответов протокола 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 (Удален)- запрошенный ресурс больше не доступен на сервере, и нет никакого адреса для перенаправления запроса.
Коды ответа HTTP
Код ответа (состояния) HTTP показывает, был ли успешно выполнен определённый HTTP запрос. Коды сгруппированы в 5 классов:
Если вы получили код ответа (состояния), которого нет в данном списке, в таком случае он является не стандартизированным кодом ответа (состояния), вероятней всего он кастомный сервера.
Следующая таблица содержит список всех кодов и их значения:
Этот ответ отсылается, когда веб сервер после выполнения server-driven content negotiation, не нашёл контента, отвечающего критериям, полученным из user agent.
Этот ответ отсылается, когда запрос конфликтует с текущим состоянием сервера.
Этот ответ отсылается, когда запрашиваемый контент удалён с сервера.
Размер запроса превышает лимит, объявленный сервером. Сервер может закрыть соединение, вернув заголовок Retry-After
Код состояния HTTP в IIS 7.0 и более поздних версиях
В этой статье приводится список кодов состояния Hypertext Transfer Protocol (HTTP) в Microsoft IIS (IIS) 7.0 и более поздних версиях.
Оригинальная версия продукта: службы IIS версии 7.0 и более поздних версий
Исходный номер КБ: 943891
Введение
При попытке получить доступ к содержимому на сервере, который работает (IIS) 7.0, 7.5 или более поздних версий с помощью протокола HTTP, IIS возвращает числовой код, который указывает состояние ответа. Код состояния HTTP записан в журнале IIS. Кроме того, код состояния HTTP может отображаться в клиентской браузере.
Код состояния HTTP может указывать, является ли запрос успешным или неудачным. Код состояния HTTP также может выявить точную причину неудачного запроса.
Эта статья предназначена для использования агентами поддержки и ИТ-специалистами. Если вы ищете дополнительные сведения об ошибках веб-сайта, см. в справке о сообщениях об ошибках веб-сайта (http errors).
Расположения файлов журнала
По умолчанию IIS 7.0 и более поздние версии помещает файлы журнала в следующую папку:
inetpub\logs\Logfiles
Эта папка содержит отдельные каталоги для каждого веб-сайта World Wide Web. По умолчанию файлы журналов создаются в каталогах ежедневно, а файлы журналов называются с помощью даты. Например, файл журнала можно назвать exYYMMDD.log.
Коды состояния HTTP
В этом разделе описываются коды состояния HTTP, которые используют IIS 7.0 и более поздние версии.
В этой статье не перечисляются все возможные коды состояния HTTP, как это диктуется в спецификации HTTP. В этой статье содержатся только коды состояния HTTP, которые могут отправляться в IIS 7.0 и более поздних версиях. Например, настраиваемый фильтр API API internet Server (ISAPI) или настраиваемый модуль HTTP может устанавливать собственный код состояния HTTP.
Эти коды состояния HTTP указывают на предварительный ответ. Клиентский компьютер получает один или более 1 xx ответов, прежде чем клиентский компьютер получает регулярный ответ.
В версиях IIS 7.0 и более поздних версий используются следующие коды состояния HTTP:
Эти коды состояния HTTP указывают на то, что сервер успешно принял запрос.
В IIS 7.0 и более поздних версиях используются следующие коды состояния HTTP успеха:
3 xx — перенаправление
Эти коды состояния HTTP указывают на то, что клиентский браузер должен принять дополнительные меры для выполнения запроса. Например, клиентский браузер может потребовать другую страницу на сервере. Или клиентский браузер может повторить запрос с помощью прокси-сервера.
В IIS 7.0 и более поздних версиях используются следующие коды http-состояния http перенаправления:
4 xx — ошибка клиента
Эти коды состояния HTTP указывают на то, что произошла ошибка и клиентский браузер, как представляется, виноват. Например, клиентский браузер мог запрашивать страницу, которая не существует. Или клиентский браузер может не предоставлять допустимые сведения о проверке подлинности.
В версиях IIS 7.0 и более поздних версий используются следующие коды состояния http-состояния ошибки клиента:
IiS 7.0 и более поздние версии определяют следующие коды состояния HTTP, которые указывают на более конкретную причину ошибки 400:
IiS 7.0 и более поздние версии определяют несколько кодов состояния HTTP, которые указывают на более конкретную причину ошибки 401. В клиентский браузер отображаются следующие коды состояния HTTP, но не отображаются в журнале IIS:
IiS 7.0 и более поздние версии определяют следующие коды состояния HTTP, которые указывают на более конкретную причину ошибки 403:
IiS 7.0 и более поздние версии определяют следующие коды состояния HTTP, которые указывают на более конкретную причину ошибки 404:
404.1 — сайт не найден.
404.2 — ограничение ISAPI или CGI.
404.3 — ограничение типа multipurpose Internet Mail Extensions (MIME).
404.5 — отказано по запросу конфигурации фильтрации.
404.6 — Глагол отклонен.
404.7 — расширение файла отклонено.
404.8 — скрытое пространство имен.
404.9 — скрытый атрибут файла.
404.11 — Запрос содержит двойную последовательность побега.
404.13 — слишком большая длина контента.
404.15 — слишком длинная строка запроса.
404.16 — запрос DAV, отправленный обработнику статического файла.
404.17 — динамическое содержимое, сопоставленное с обработилом статического файла с помощью сопоставления MIME подтекстата.
404.19 — отклонено правилом фильтрации.
404.20 — слишком много сегментов URL-адресов
404.501 — не найден: слишком много запросов с одного и того же IP-адреса клиента; Динамическое ограничение IP-адресов одновременное ограничение скорости запроса достигнуто.
404.502 — не найден: слишком много запросов с одного и того же IP-адреса клиента; Динамическое ограничение IP Максимальное ограничение скорости запроса достигнуто.
404.503 — Не найден: IP-адрес включен в список ограничений IP-адресов
404.504 — Не найден: имя хозяина включено в список запрета ограничения IP
405 — метод запрещен.
5 xx — ошибка сервера
Эти коды состояния HTTP указывают на то, что сервер не может выполнить запрос, так как сервер сталкивается с ошибкой.
В IIS и более поздних версиях используются следующие коды состояния http-состояния ошибки сервера:
500 — ошибка внутреннего сервера.
IiS 7.0 и более поздние версии определяют следующие коды состояния HTTP, которые указывают на более конкретную причину ошибки 500:
500.0 — произошла ошибка Модуля или ISAPI.
500.13 — веб-сервер слишком занят.
500.21 — модуль не распознается.
500.22 — конфигурация ASP.NET не применяется в httpModules режиме управляемого конвейера.
500.23 — конфигурация ASP.NET не применяется в httpHandlers режиме управляемого конвейера.
500.24 — конфигурация ASP.NET не применяется в режиме управляемого конвейера.
Здесь считыется конфигурация распределенных правил как для входящие, так и исходящие правила.
500.51 — ошибка переписывание произошла во время GL_PRE_BEGIN_REQUEST обработки уведомлений. Произошла глобальная конфигурация или ошибка выполнения глобальных правил.
Здесь прочитана глобальная конфигурация правил.
500.100 — внутренняя ошибка ASP.
IiS 7.0 и более поздние версии определяют следующие коды состояния HTTP, которые указывают на более конкретную причину ошибки 502:
IiS 7.0 и более поздние версии определяют следующие коды состояния HTTP, которые указывают на более конкретную причину ошибки 503:
Общие коды состояния HTTP и причины
В следующей таблице описываются причины некоторых распространенных кодов состояния HTTP.
Коды http substatus, добавленные в IIS 8.0
Subcode | Описание |
---|---|
400.10 | Недействительный загон X-Forwarded-For (XFF) |
400.11 | Недействительный запрос WebSocket |
Коды http substatus, добавленные в ARR 3.0.1916
Subcode | Описание |
---|---|
400.601 | Плохой запрос клиента (ARR) |
400.602 | Недействительный формат времени (ARR) |
400.603 | Ошибка диапазона parse (ARR) |
400.604 | Клиент исчез (ARR) |
400.605 | Максимальное количество форварда (ARR) |
400.606 | Асинхронная ошибка конкуренции (ARR) |
502.2 | Сбой запроса на карту (ARR) |
502.3 | Асинхронный сбой завершения WinHTTP (ARR) |
502.4 | Нет сервера (ARR) |
502.5 | Сбой WebSocket (ARR) |
502.6 | Сбой запроса на переададку (ARR) |
502.7 | Выполнение сбоя запроса (ARR) |
Ссылки
Дополнительные сведения о определениях кода кода состояния HTTP см. в http/1.1: Status Code Definitions.
Заявление об отказе от ответственности за сведения о продуктах сторонних производителей
В этой статье упомянуты программные продукты независимых производителей. Корпорация Майкрософт не дает никаких гарантий, подразумеваемых и прочих, относительно производительности и надежности этих продуктов.
Коды ошибок 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
Этот код сообщает клиенту, что он не может попасть на запрашиваемый ресурс из юридических соображений. Скорее всего, доступ был заблокирован из-за каких-нибудь государственных санкций, нового законодательства или цензуры со стороны властей. В общем, все вопросы к государству и провайдеру связи.
- С чем сделать клизму при запоре ребенку
- 0x8007007b код ошибки в windows 10 как исправить на пиратке