что такое ошибка 204
Код состояния 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 также может выявить точную причину неудачного запроса.
Расположения файлов журнала
По умолчанию 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 сервера: 200, 201, 202, 203, 204, 205, 206
Привет, читатель блога ZametkiNaPolyah.ru! Продолжим знакомиться с протоколом HTTP в рубрике серверы и протоколы и ее разделе HTTP протокол. В этой записи мы с тобой рассмотрим успешные коды состояния HTTP сервера, которые, как ты понимаешь, начинаются с двойки. Для начала мы посмотрим на список успешных кодов состояния и дадим и короткое пояснение, а затем мы посмотрим на то, как успешные коды состояния связаны с методами HTTP запроса. В конце этой публикации мы более подробно поговорим про каждый из успешных кодов состояния.
Успешные коды состояния HTTP сервера: 200, 201, 202, 203, 204, 205, 206
Общее описание успешных кодов состояния HTTP сервера
Если вы хотите узнать всё про протокол HTTP, обратитесь к навигации по рубрике HTTP протокол. Успешные коды состояния HTTP сервера говорят клиенту о том, что его запрос успешно получен, понят, принят и обработан. Успешные коды состояния HTTP сервера всегда начинаются с двойки, давайте сведем в одну таблицу все успешные HTTP коды, как мы это делали для информационных кодов.
Успешный код состояния | Описание успешного кода состояния HTTP севера |
200 OK | Успешный код состояния HTTP сервера 200: хорошо Код состояния 200 говорит клиенту о том, что его запрос удачно выполнен. |
201 Created | Успешный код состояния HTTP сервера 201: создан Код состояния 201 сообщает нам о том, что новый ресурс был создан успешно. |
202 Accepted | Успешный код состояния HTTP сервера 202: принято Код состояния 202 сообщает клиенту о том, что HTTP запрос успешно принят на обработку, но обработка еще не завершена, в этом случае сервер может отказать в обслуживание запроса клиента. |
203 Non-authoritative Information | Успешный код состояния HTTP сервера 203: не авторская информация Код состояния 203, отправленный в HTTP ответе, сообщает клиенту о том, что возвращенная в заголовке HTTP объекта информация – это не оригинал, который есть на первоначальном сервере, а документ, собранный из локальных копий или копий третьей стороны. |
204 No Content | Успешный код состояния HTTP сервера 204: нет содержимого Код состояния 204 говорит клиенту о том, что в ответном HTTP сообщении нет тела (про тело объекта HTTP). |
205 Reset Content | Успешный код состояния HTTP сервера 205: сбросить содержимое Если браузер получит код состояния 205, то он должен очистить форму, чтобы дать пользователю ввести дополнительные данные. |
206 Partial Content | Успешный код состояния HTTP сервера 206: частичное содержимое Код состояния 206 говорит браузеру о том, что HTTP сервер выполнил частичный GET запрос клиента (про методы HTTP). Чтобы получить такой код запрос клиента должен содержать поле заголовка Range, который указывает диапазон (вспоминаем диапазоны значений и HTTP параметры). |
Перейдем к рассмотрению HTTP кодов состояний из класса 2хх (если ты еще не знаешь про классы состояния HTTP)
HTTP код состояния 200 (успешно). HTTP код состояния 201 (создано). HTTP код состояния 202 (принято)
HTTP код состояния 200 сообщает о том, что запрос клиента был успешно принят и обработан. Информация, которая будет возвращена пользователю зависит от метода HTTP запроса. Давайте составим небольшую таблицу с методами и тем, какое содержимое им вернет сервер с HTTP кодом состояния 200.
Метод HTTP запроса | Содержимое HTTP ответа с кодом 200 |
GET | В ответ на метод GET клиент получит HTTP сообщение с кодом 200 и объект, который расположен по указанному URI в запросе (URI в HTTP). |
POST | Если клиент отправляет запрос методом POST, то в ответ он получает сообщение с кодом состояния 200 с описание объекта или результатом действия метода POST. |
TRACE | Клиент, отправивший запрос методом TRACE, получит HTTP ответ с кодом состояния 200, который будет содержать сообщение, полученное конечным сервером. |
HEAD | В ответ на метод HEAD клиент получит сообщение с кодом состояния 200, в котором не будет тела сообщения |
HTTP код 200 мы рассмотрели, давайте перейдем к коду 201.
HTTP код состояния 201 сообщает клиенту о том, что запрос успешно выполнен и в результате этого запроса появился новый ресурс по указанному в запросе URI. Но сервер вместо кода 201 может послать код 202 в том случае, если он не может выполнить запрос клиента немедленно. Давайте перейдем к рассмотрению HTTP кода состояния 202.
HTTP код состояния 202 сообщает клиенту о том, что его запрос успешно принят на обработку, но обработка сервером еще не завершена. В итоге сервер может выполнить запрос клиента, а может его отклонить. Ответы с кодом состояния 202 уклончивы и это сделано преднамеренно, например, для того, чтобы дать серверу выполнить какой-то более важный запрос, а потом ответить клиенту, которому он отправлял HTTP сообщение с кодом состояния 202.
HTTP код состояния 203 (не авторская информация). HTTP код состояния 204 (нет содержимого). HTTP код состояния 205 (сбросить содержимое). HTTP код состояния 206 (частичное содержимое)
Перейдем к следующему успешному коду состояния HTTP сервера – код состояния 203, который говорит клиенту о том, что информация не авторская. HTTP код состояния 203 возвращает в заголовке своего сообщения информацию о том, что данное сообщение не является оригиналом, который доступен на первоначальном сервере и, возможно, информация взята из кэша HTTP сервера.
HTTP код состояния 204 говорит клиенту о том, что сервер успешно выполнил запрос, но никакой новой полезной информации нет. HTTP код состояния 204 используется чаще всего для работы с HTML формами для ввода пользовательских данных. Ответ с кодом состояния 204 не должен содержать тела сообщения.
HTTP код состояния 205 говорит браузеру о том, что ему следует (читай требования HTTP) отменить просмотр документа. Такой код состояния HTTP сервера чаще всего используется для очистки форм с целью повторного или последующего ввода и не содержит HTTP объекта.
HTTP код состояния 206 говорит о том, что был выполнен частичный метод GET. Чтобы получить такой код состояния запрос клиента должен содержать поле заголовка Range, в котором указывается диапазон в байтах, при этом ответ HTTP сервера должен содержать поле заголовка Content-Range, либо поле заголовка Content-Type.
Мы рассмотрели успешные коды состояния HTTP, давайте перейдем к кодам перенаправления. Еще есть коды ошибок клиента и коды ошибок сервера, о которых можно узнать на моём сайте. А если тебе нужна информацию обо всех кодах состояния, обратись к справочнику HTTP кодов состояния, в котором есть полное описание всех кодов.
Коды статусов ответа по протоколу HTTP
Информационный (Informational 1xx)
100=»Continue»
Начальная часть запроса принята, и клиент может продолжать передачу запроса.
101=»Switching Protocols»
Сервер выполняет требование клиента и переключает протоколы в соответствии с указанием, данным в поле заголовка Upgrade.
Запрос клиента успешен (Successful 2xx)
Ответы в диапазоне 200-299 означают, что запрос клиента обработан успешно.
200=»OK»
Запрос клиента обработан успешно, и ответ сервера содержит затребованные данные.
201=»Created»
Этот код состояния используется в случае создания нового URI. Вместе с этим кодом результата сервер выдает заголовок Location (см. главу 19), который содержит информацию о том, куда были помещены новые данные.
202=»Accepted»
Запрос принят, но обрабатывается не сразу. В теле содержимого ответа сервера может быть дана дополнительная информация о данной транзакции. Гарантии того, что сервер в конечном итоге удовлетворит запрос, нет, даже несмотря на то, что на момент приема запрос выглядел допустимым.
203=»Non-Authoritative Information»
Информация в заголовке содержимого взята из локальной копии или у третьей стороны, а не с исходного сервера.
204=»No Content»
Ответ содержит код состояния и заголовок, но тело содержимого отсутствует. При получении этого ответа броузер не должен обновлять свой документ. Обработчик чувствительных областей изображений может возвращать этот код, когда пользователь щелкает на бесполезных или пустых участках изображения.
205=»Reset Content»
Броузер должен очистить форму, используемую в данной транзакции, для дополнительных входных данных. Полезен для CGI-приложений, требующих ввода данных.
Сервер возвращает лишь часть данных затребованного объема. Используется в ответе на запрос с указанием заголовка Range. Сервер должен указать диапазон, включенный в ответ, в заголовке Content-Range.
Запрос клиента переадресован (Redirection 3xx)
Код ответа в диапазоне 300-399 означает, что запрос не выполнен и клиенту нужно предпринять некоторые действия для удовлетворения запроса.
Это код ответа на заголовок lf-Modified-Since, если URI не изменялся с указанной даты. Тело содержимого не посылается, и клиент должен использовать свою локальную копию.
Доступ к затребованному URI должен осуществляться через proxy-сервер, указанный в заголовке Location.
Запрос клиента является неполным (Client Error 4xx)
Коды ответов в диапазоне 400-499 означают, что запрос клиента неполный. Эти коды могут также означать, что от клиента требуется дополнительная информация.
Сервер не будет обрабатывать запрос, потому что его тело имеет неподдерживаемый формат.
416=»Requested Range Not Satisfiable»
Запрашиваемый диапазон не допустим
Ожидание не удалось
Превышен лимит запросов
450=Rating Service Unavailable
451=Unavailable For Legal Reasons
452 could be site not permitted by employer,
453 could be site not permitted by ISP
460 Blocked by Repressive Regime
Ошибки сервера (Server Error 5xx)
Коды ответов в диапазоне 500-599 показывают, что сервер столкнулся с ошибкой и, вероятно, не сможет выполнить запрос клиента.
Сервер не поддерживает версию протокола HTTP, использованную в запросе.
Ошибки ( Error 7xx)
Ошибки ( Error 9xx)
Для отправки кода статуса из PHP используется директива «header Status».
Проблема статус-кодов HTTP
Ситуацию с использованием кодов ответов HTTP можно заносить в палату мер и весов: вот что происходит, когда благие намерения разработчиков спецификации сталкиваются с жестокой реальностью. Даже с двумя жестокими реальностями.
Но вот с чем RFC совершенно не помогает — это с вопросом, а что собственно клиенту или прокси делать с ошибкой. Как мы обсуждали, ошибки могут быть устранимыми или неустранимыми. Если ошибки неустранимая, то клиентам по большому счёту наплевать на всю эту петрушку со статус-кодами и заголовками, а уж промежуточным прокси тем более. Для этого на самом деле трёх кодов было бы достаточно:
400 Bad Request для ситуаций, когда часть параметров отсутствует или имеет недопустимое значение. От этой ошибки клиентам нет абсолютно никакого толку, если только в ответе не указано, какое конкретно поле имеет недопустимое значение — и вот как раз именно это стандарт и не стандартизирует! Да, конечно, можно самому стандарт придумать — но это как минимум противоречит идее прозрачности в REST.
Каждая 403 связана со своим сценарием разрешения, некоторые из них (например, брутфорсинг) вообще ничего общего не имеют с другими.
Замечание: авторы спецификации тоже это понимали, и добавили следующую фразу: ‘The response message will usually contain a representation that explains the status’. Мы с ними, конечно, полностью согласны, но не можем не отметить, что эта фраза не только делает кусок спецификации бесполезным (а зачем нужны коды-то тогда?), но и противоречит парадигме REST: другие агенты в многоуровневой системе не могут понять, что же там «объясняет» представление ошибки, и сама ошибка становится для них непрозрачной.
Казалось бы, мы пришли к логичному выводу: используйте статус-коды для индикации «класса» ошибки в терминах протокола HTTP, а детали положите в ответ. Но вот тут теория повторно на всех парах напарывается на практику. С самого появления Web все фреймворки и серверное ПО полагаются на статус-коды для логирования и построения мониторингов. Я не думаю, что сильно совру, если скажу, что буквально не существует платформы, которая из коробки умеет строить графики по семантическим данным в ответе ошибки, а не по статус-кодам. И отсюда автоматически следует дальнейшее усугубление проблемы: чтобы отсечь в своих мониторингах незначимые ошибки и эскалировать значимые, разработчики начали попросту придумывать новые статус-коды — или использовать существующие не по назначению.
А какие ваши предложения?
На самом деле есть три подхода к решению этой ситуации:
отказаться от REST и перейти на чистый RPC. Использовать статус-коды HTTP только для индикации проблем с соответствующим уровнем сетевого стэка. Достаточно двух:
Можно ещё использовать 400 Bad Request для клиентских ошибок. Это чуть усложняет конструкцию, но позволяет пользоваться ПО и сервисами для организации API Gateway;
прибрать бардак. Включая, но не ограничиваясь:
Выбор за вами, но на всякий случай заметим, что подход #3 весьма дорог в реализации.
— Этот текст написан в рамках подготовки будущего раздела про HTTP API для моей книги, работы ведутся на Гитхабе.
Я буду признателен, если кто-то пошарит её на реддите, я сам по правилам реддита не могу.
Как исправить ошибку Pidgin 204
Номер ошибки: | Ошибка 204 | |
Название ошибки: | Pidgin Error 204 | |
Описание ошибки: | Unable to add user: Unknown error. | |
Разработчик: | Edgewall Software | |
Программное обеспечение: | Pidgin | |
Относится к: | Windows XP, Vista, 7, 8, 10, 11 |
Объяснение «Pidgin Error 204»
Люди часто предпочитают ссылаться на «Pidgin Error 204» как на «ошибку времени выполнения», также известную как программная ошибка. Разработчики программного обеспечения, такие как Edgewall Software, обычно принимают Pidgin через несколько уровней отладки, чтобы сорвать эти ошибки перед выпуском для общественности. К сожалению, такие проблемы, как ошибка 204, могут быть пропущены, и программное обеспечение будет содержать эти проблемы при выпуске.
Пользователи Pidgin могут столкнуться с ошибкой 204, вызванной нормальным использованием приложения, которое также может читать как «Unable to add user: Unknown error.». Если возникает ошибка 204, разработчикам будет сообщено об этой проблеме через уведомления об ошибках, которые встроены в Pidgin. Edgewall Software вернется к коду и исправит его, а затем сделает обновление доступным для загрузки. Таким образом, когда ваш компьютер выполняет обновления, как это, это, как правило, чтобы исправить проблемы ошибки 204 и другие ошибки внутри Pidgin.
Что генерирует ошибку времени выполнения 204?
У вас будет сбой во время выполнения Pidgin, если вы столкнетесь с «Pidgin Error 204» во время выполнения. Это три основных триггера для ошибок во время выполнения, таких как ошибка 204:
Как правило, такие Edgewall Software ошибки возникают из-за повреждённых или отсутствующих файлов Pidgin Error 204, а иногда — в результате заражения вредоносным ПО в настоящем или прошлом, что оказало влияние на Pidgin. Как правило, решить проблему можно заменой файла Edgewall Software. В качестве дополнительного шага по устранению неполадок мы настоятельно рекомендуем очистить все пути к неверным файлам и ссылки на расширения файлов Edgewall Software, которые могут способствовать возникновению такого рода ошибок, связанных с Pidgin Error 204.
Типичные ошибки Pidgin Error 204
Наиболее распространенные ошибки Pidgin Error 204, которые могут возникнуть на компьютере под управлением Windows, перечислены ниже:
Проблемы Pidgin Error 204 с участием Pidgins возникают во время установки, при запуске или завершении работы программного обеспечения, связанного с Pidgin Error 204, или во время процесса установки Windows. Запись ошибок Pidgin Error 204 внутри Pidgin имеет решающее значение для обнаружения неисправностей электронной Windows и ретрансляции обратно в Edgewall Software для параметров ремонта.
Эпицентры Pidgin Error 204 Головные боли
Проблемы Pidgin и Pidgin Error 204 возникают из отсутствующих или поврежденных файлов, недействительных записей реестра Windows и вредоносных инфекций.
В частности, проблемы с Pidgin Error 204, вызванные:
Совместима с Windows 2000, XP, Vista, 7, 8, 10 и 11