Ошибка 412 – HTTP коды ошибок клиента | IT-блог о веб-технологиях, серверах, протоколах, базах данных, СУБД, SQL, компьютерных сетях, языках программирования и создание сайтов.

Коды ответов сервера и ошибки. HTTP 200, 301, 404, 302, 500, 503, 550 и др.

Может сейчас эта тема не особо вас волнует, однако протяжении существования вашего сайта вы будете сталкиваться с кодами ответов сервера или «списком кодов состояния HTTP»

, связанных с различными элементами функциональной составляющей вашего сайта. Довольно часто встречаются такие ошибки, как 404 и 301, но существует огромное множество других ошибок, с которыми вы, возможно, не знакомы. Прежде чем паниковать, лучше прочтите эту статью, призванную рассказать вам о значения кодов различных ошибок, которые могут встретиться на вашем пути.

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

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

1xx Информационные коды

100 Continue означает «работу в штатном режиме». Он означает, что пользователем был сделан хороший запрос, и сервер принялся к обработке. Это временный код ответа, имеющий место лишь тогда, когда пользователь ожидает финального ответа от сервера, который происходит только после того, как будет отослан последний пакет данных.

Когда этот код может использоваться? Это внутренний код, и иногда он даже не генерируется, если пользователь уже получил какие-то данные от сервера. Это нечто вроде послания к серверу о том, что соединение было установлено успешно, и двери открыты. Высылай данные, но не забудь закрыть дверь, когда закончишь дела (имеется в виду код финального ответа).

Это, наверное, один из самых простых серверных кодов, который означает, что пользователь сделал запрос на переключение типа протокола, используемого на веб-сервере, и сервер дал согласие на это.

Когда этот код может использоваться? При переключении на новую версию HTTP с протокола старого типа. Этот запрос выполняется только при наличии более подходящего протокола (иными словами, при наличии более свежей версии HTTP).

Так как WebDAV-запрос (протокол передачи) может содержать не только один запрос, но также множество подзапросов, включая операции с файлами, он зачастую может затребовать более длительного времени для завершения запроса.

Когда этот код может использоваться? Этот код генерируется для того, чтобы оповестить пользователя и необходимости сбросить таймер и ожидать следующей команды в обычном режиме, так как процесс обработки запроса может занять длительное время.

2xx Success

Сообщения данного класса информируют о случаях успешного принятия и обработки запроса клиента. В зависимости от статуса сервер может ещё передать заголовки и тело сообщения. Иначе говоря, данная классификация кодов обозначает, что действие, запрошенное клиентом, было успешно принято в обработку.

Этот код, вероятно, является самым популярным, но при этом самым незаметным ввиду его характера. Он означает, что обмен между пользователем и сервером завершен, и все прошло так, как должно было.

Когда этот код может использоваться? В идеале – постоянно!

В результате успешного выполнения запроса был создан новый ресурс. Например, запрос пользователя привел к созданию нового ресурса вроде новой страницы. Сервер-источник должен создать ресурс перед тем, как отправлять код 201. Если ресурс не может быть создан в данный момент, то сервер вместо этого должен отобразить код 202 (accepted).

Запрос был принят на обработку, но она не завершена по каким-либо причинам. Запрос может и не быть выполнен до конца, в зависимости от того, был ли он отклонен в процессе обработки.

Когда этот код может использоваться? Когда сервер не может выполнить запрос в тот момент, в который он был сделан. Запрос изначально не рассчитан на обязательное исполнение, и клиенту не обязательно дожидаться окончательной передачи сообщения, так как может быть начат очень долгий процесс.

  • 203 Non-Authoritative Information

Сервер успешно обработал запрос, но передаваемая информация была взята не из первичного источника (резервной копии, другого сервера и т. д.) и поэтому может быть неактуальной. По сути, этот код очень похож на 200, но указывает на то, что информация была получена не из первоисточника.

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

Этот код представляет собой ответ, посланный сервером для того, чтобы сообщить, что запрос был получен и понят, но отсутствуют данные, которые можно было отправить пользователю. Это, главным образом, используется для того, чтобы разрешить запуск скриптов, не меняя при этом документ. Данный код не должен содержать тело сообщения, и включается в первую пустую строку кода сразу после заголовка.

Когда этот код может использоваться? Этот код, главным образом, используется для того, чтобы позволить осуществить ввод или какие-либо действия без необходимости обновлять документ (страницу).

Сервер успешно обработал запрос, но при этом не возвращает какой-либо контент. В отличие от 204, этот ответ требует от запрашиваемого обновить документ.

Когда этот код может использоваться? Обычно он используется тогда, когда пользователь заполняет форму, а сервер посылает браузеры запрос на очистку формы. Он схож с кодом 204, но просит пользователя сбросить документ после завершения – например, очистить HTML-форму после подтверждения.

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

Когда этот код может использоваться? Этот кода обычно используется вследствие запрос If-Range, который применяется в мощных валидаторах кэша. Запрос также должен включать заголовки области, которые используется в качестве параметров диапазона возвратной информации.

Сервер передаёт результаты выполнения сразу нескольких независимых операций, которые помещают в тело сообщения в виде XML-документа.

3хх Перенаправление

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

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

Когда этот код может использоваться? Обычно этот код можно увидеть, когда сервер считает, что предоставленный пользователем (другими словами, браузером пользователя) URL имеет недостаточно точный указатель, и предлагает дальнейший выбор. Обычно это происходит тогда, когда пользователь использует URL на директорию не самого последнего уровня, и сервер предлагает ему выбор имеющихся файлов или директорий последующего уровня.

Это довольно распространенный пользовательский запрос. Он означает, что запросы для данного ресурса (а также все последующие запросы) должны быть перенаправлены на заданный URL.

Когда этот код может использоваться? Когда страница более не существует, либо ссылка, ведущая на сторонний источник, уже не работает. 301 редирект сообщает пользователю о том, что запрашиваемый ресурс был перемещен (обычно это реализуется при помощи файла .htaccess, доступного на серверах Apache).

Этот код сообщает пользователю, что расположение запрашиваемого ресурса временно изменено, и 302 код состояния должен содержать информацию о новом месторасположении, которое пользователь и должен запросить.

Когда этот код может использоваться? У этого кода есть несколько применений, многие из которых не являются тем, для чего код был изначально предназначен. Изначально он представлял собой основной способ создания временного перенаправления. Тем не менее, сегодня существуют и другие – этичные, и неэтичные – способы его применения.

Этот код указывает пользователю на то, что запрашиваемый ресурс можно найти по URL, который отличается от указанного в запросе. Это не обязательно означает, что что-то было перемещено, это код лишь предоставляет адрес, по которому следует запрашивать подобный ответ.

Когда этот код может использоваться? Этот метод главным образом существует для того, чтобы позволить выводу данных POST-активированного скрипта перенаправить агента пользователя к выбранному ресурсу.

Этот код означает, что пользователь запрашивает документ/ресурс только в том случае, если он подвергался изменениям с момента последнего обновления кэша данного документа.

Когда этот код может использоваться? Если в ответе от сервера сообщается о том, что параметры документа If-Modified-Since или If-Match не менялись с момента создания последнего кэша, то нет необходимости в повторной отправке ресурса.

Этот код сообщает пользователю, что доступ к запрашиваемому ресурсу возможен только посредством прокси, указанного в ответе.

Когда этот код может использоваться? Этот код часто отображается в связи с мерами безопасности, и предоставляет доступ к запрашиваемым URL-ресурсам.

Этот код изначально означал «последующие запросы должны использовать указанный прокси», но в данный момент не используется и зарезервирован.

Этот код возвращается, если ресурс на данный момент временно доступен по другому URL, который также предоставляется в ответе. Этот код немного отличается от кода 302 – он представляет собой более определенную версию кода 302.

Когда этот код может использоваться? Он используется практически в тех же случаях, что и 302, но пользователь должен продолжить запросы по исходному URL при следующих запросах, либо до тех пор, пока не будет применен новых код ответа.

4хх Ошибка клиента

Класс кодов 4xx предназначен для указания ошибок со стороны клиента, либо на то, что локации никогда (или уже) не существовало. Эти коды состояния применимы к любому методу запроса.

Запрос не может быть исполнен ввиду синтаксической ошибки.

Когда этот код может использоваться? Когда пользователь запрашивает информацию, но делает это, пренебрегая правилами протокола передачи гипертекста. Запрос не следует повторять без изменения синтаксиса.

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

Когда этот код может использоваться? Когда пользователь совершает запрос к серверу, используя неправильные данные авторизации (имя пользователя и/или пароль).

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

Когда этот код может использоваться? Старый сервис MobileMe от Apple выдавал ошибку 402, если аккаунт пользователя в MobileMe подозревался в злоупотреблении сервисом. Кроме того, Youtube использует это состояние, если конкретный IP-адрес уличен в совершении чрезмерного числа запросов, и тогда пользователю необходимо ввести CAPTHA.

Пользователь пытается осуществить доступ к ресурсу, к которому у него нет доступа, и авторизация не изменит положения.

Когда этот код может использоваться? Когда сервер понял запрос, но он отказывается его выполнять из-за ограничений в доступе для клиента к указанному ресурсу. Обычно такое случается, когда ресурс не предназначен для публичного доступа.

Все знакомы с этим кодом, не так ли? Он означает, что запрошенный ресурс не может быть найден, но в будущем – когда он, возможно, там появится, – к нему можно будет осуществить доступ. Также здесь допустимы последующие запросы от клиента. Тем не менее, в большинстве таких случаев применяется код перенаправления из семейства 3хх, и пользователя перенаправляют на альтернативный ресурс или локацию.

Когда этот код может использоваться? Довольно часто, особенно если страницу переместили или удалили. Зачастую в подобных случаях сервер автоматически генерирует направляющую страницу с ошибкой 404.

Метод, при помощи которого совершается запрос к ресурсу, не доступен. Другими словами, ошибка возникает при попытке использовать GET на форме, которая требует ввод данных посредством POST, либо использовании метода PUT на ресурсе, который предназначен только для чтения.

Когда этот код может использоваться? Ошибки 405 встречаются в связи с конкретными объектами на веб-странице, для которых был совершен запрос. Например, когда строка запроса в скрипте отличается от пользовательского запроса, в котором подразумевается использование этого скрипта.

Запрошенный ресурс способен генерировать только тот контент, который не применим к Accept-заголовкам в самом запросе. Браузер способен указывать серверу характеристики данных, которые данные будут принимать от сервера

Когда этот код может использоваться? Если форма файла запрошенного ресурса не совпадает с форматом, который пользователь способен распознать. Мы говорим сейчас о языке программирования, а не о французском!

  • 407 Proxy Authentication Required

Как и код состояния 401, код 407 означает, что клиент сначала должен авторизоваться через прокси. Чтобы сделать это и авторизоваться, прокси должен вернуть поле с заголовком proxy-authenticate, который отвечает требованиям, представленным сервером.

Когда этот код может использоваться? Когда сервер думает, что запрос данных от клиента корректным, но доступ к ресурсу возможен только посредством авторизации через прокси-сервер.

Время ожидания сервером передачи от клиента истекло.

Когда этот код может использоваться? Руководствуясь спецификацией W3 HTTP: «Клиент не сделал запрос в отведенный промежуток времени, который сервер был готов ждать. Клиент МОЖЕТ повторить запрос когда угодно».

Указывает на то, что запрос не может быть выполнен из-за конфликтного обращения к ресурсу.

Когда этот код может использоваться? Вы можете получить такой код при загрузке файла на веб-сервер, где уже имеется более свежая версия этого файла, что приводит к конфликту в системе контроля версий.

Такой ответ сервер посылает, если ресурс раньше был по указанному URL, но был удалён и теперь недоступен. Пользователю не следует повторять идентичный запрос.

Когда этот код может использоваться? Если более невозможно осуществить доступ к ресурсу посредством данного запроса, и сервер не владеет информацией о возможном месте расположения ресурса. Если у сервера есть подозрение, что документ в ближайшее время может быть восстановлен, то лучше клиенту передать код 404.

Запрос не указывает длину контента, и это было затребовано в совершенном запросе.

Когда этот код может использоваться? Когда браузер не определяет длину запрашиваемого контента в заголовке запроса. Сервер не примет запрос без валидного поля заголовка content-length.

Сервер не отвечает одному из предварительных условий, которые отправитель указал в запросе. Другими словами, один или более заголовок запроса был возвращен с атрибутом false.

Когда этот код может использоваться? Если заголовок запроса, который совершает валидный запрос к ресурсу, сообщает, что этот конкретный запрос не применим к этому конкретному ресурсу.

  • 413 Request Entity Too Large

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

Когда этот код может использоваться? При использовании в форме метода POST с контентом, по размеру большим, нежели сервер способен обработать.

Этот код отображается, когда сервер не может обработать запрос из-за слишком длинного указанного URL.

Когда этот код может использоваться? Когда POST-запрос конвертируется в GET-запрос. POST-запрос поддерживает отправку безграничного объема данных, связывая их с самим запросом. Тем не менее, если запрос должен быть конвертирован в GET-запрос, то запрос позволяет привязать данные формы к URL, что позволяет проводить информацию в больших размерах, чем это было доступно.

  • 415 Unsupported Media-Type

Ответ 415 отправляется для указания о том, что сервер заметил, что часть запроса была сделана в неподдерживаемом формате.

Когда этот код может использоваться? Когда в запросе не указываются какие-либо типы медиа, которые поддерживаются ресурсом или сервером. Например, пользователь запрашивает изображение с расширением файла, которое не поддерживается сервером. Сервер знает о том, что было запрошено, но не понимает формат, в котором был запрошен ресурс.

  • 416 Requested Range Not Satisfiable

Этот ответ приходит пользователю, когда тот запрашивает часть запрашиваемого ресурса, когда эта часть не может быть предоставлена.

Когда этот код может использоваться? Когда у сервера запрашивают XXX-YYY байтов какого-либо ресурса, но ресурс имеет меньший размер, чем указано в запросе.

Этот ответ может быть получен, когда по каким-то причинам сервер не может удовлетворить значению поля Expect заголовка запроса.

Когда этот код может использоваться? Все вполне и так понятно. Когда один из заголовков запроса, заголовок «Expect», имеет запрос, на который сервер не может предоставить ответ.

Этот код был создан в 1998 году как одна из традиционных первоапрельских шуток IETF, в RFC 2324, Hyper Text Coffee Pot Control Protocol, и вряд ли будет обрабатываться современными HTTP-серверами.

Когда этот код может использоваться? Лет 15 назад, ради смеха.

Запрос был принят и понят, но не может быть выполнен ввиду наличия семантических ошибок.

Когда этот код может использоваться? Когда сервер успешно принял запрос, может работать с указанным видом данных, в теле запроса XML-документ имеет верный синтаксис, но имеется какая-то логическая ошибка, из-за которой невозможно произвести операцию над ресурсом.

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

Когда этот код может использоваться? Когда ресурс… закрыт. Обычно это случается из соображений безопасности.

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

Этот код отображается, когда ресурс определен в черновиках «WebDAV Advanced Collections Protocol», но не присутствует в «Web Distributed Authoring and Versioning Ordered Collections Protocol».

Этот код отображается, когда сервер указывает клиенту на необходимость обновить (переключиться на другой, более новый) протокол. Когда этот код может использоваться? Обычно когда браузер использует устаревшие протоколы.

  • 428 Precondition Required

Сервер-источник требует, чтобы в запросе были указаны предварительные условия. Этот код предназначен для того, чтобы избежать конфликта версий ресурса в тех случаях, когда клиент получает (GET) состояние ресурса, изменяет его, и отправляет (PUT) обратно на сервер, и в то же время какая-то третья сторона также изменяет положение ресурса прямо на севере, что приводит к конфликту.

Когда этот код может использоваться? Запрашивая указание условий, сервер как бы гарантирует клиентам то, что они используют корректные актуальные копии ресурс. Если же это не соответствует действительно, пользователь получит ошибку 428.

Этот ответ посылается, если клиент попытался отправить слишком много запросов за короткое время.

Когда этот код может использоваться? Когда пользователь посылает слишком много запросов за короткий промежуток времени.

  • 431 Request Header Fields Too Large

Происходит, когда сервер не собирается обрабатывать запрос, так как какое-то из полей заголовка (или все поля заголовков) слишком большое.

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

Использовался в лог-файлах Nginx для указания того, что сервер не вернул информацию пользователю и закрыл соединение.

Когда этот код может использоваться? Обычно использовался в качестве сдерживающего фактора против вредоносного ПО.

  • 449 Retry With (Microsoft)

Расширение Microsoft, которое указывает на то, что запрос должен быть повторен после применения подходящего действия.

Когда этот код может использоваться? Этот код зачастую генерируется, когда выставленные параметры запроса не соответствуют тем, что может принять сервер.

  • 450 Blocked by Windows Parental Controls (Microsoft)

Расширение Microsoft. Эта ошибка выдается, когда параметры Windows Parental Controls выставлены на блокировку доступ к определенным веб-страницам.

Когда этот код может использоваться? Когда родители (зная об этой функции) используют родительский контроль, и id-доступа запросил доступ к заблокированному ресурсу.

  • 451 Unavailable For Legal Reasons

Новый HTTP-код состояния для ресурсов, которые заблокированы из юридических соображений. Используется для указания на то, что доступ к запрашиваемому ресурсу был заблокирован из юридических соображений: например, цензурой, или правительством.

5xx Ошибка сервера

Коды 5xx выделены под случаи неудачного выполнения операции по вине сервера.

Эти серверные ответы зачастую отображаются, когда пользователь делает запрос, который сервер не в состоянии обработать по той или иной причине. Сервер должен включать сообщение для браузера, которое должно быть показано пользователю – в нем сообщается, что сервер (и по каким причинам) не способен обработать запрос.

  • 500 Internal Server Error

Данная ошибка говорит о любой внутренней ошибке сервера, которая не входит в рамки остальных ошибок класса.

Когда этот код может использоваться? Когда ресурс или ссылка создаются на сервере (вроде календаря в системе бронирования), которые технически не существуют в виде ссылки или доступного ресурса, но показывается пользователю в виде ссылки.

Сервер либо не понимает метод в запросе, либо не поддерживает возможностей, необходимых для обработки запроса

Когда этот код может использоваться? Вы можете столкнуться с этим, когда сервер не поддерживает нормальные протоколы запроса, вроде GET, OPTIONS, HEAD, POST и т.д.

Ответ 502 отображается, когда сервер, выступая в роли шлюза или прокси-сервера, получил недействительное ответное сообщение от вышестоящего сервера.

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

Сервер временно не имеет возможности обрабатывать запросы по техническим причинам. В основном, это состоянии является временным.

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

Сервер в роли шлюза или прокси-сервера не дождался ответа от вышестоящего сервера для завершения текущего запроса.

Когда этот код может использоваться? Когда для передачи данных используется прокси-сервер/шлюз, и два сервера ждут ответов.

  • 505 HTTP Version Not Supported

Сервер не поддерживает указанную в запросе версию протокола HTTP.

Когда этот код может использоваться? В случаях, описанных выше! Когда HTTP-протокол более старый, нежели требуется серверу, и следовательно не поддерживается.

  • 506 Variant Also Negotiates

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

Когда этот код может использоваться? Когда сервер настроен некорректно, и не способен обработать запрос.

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

Когда этот код может использоваться? Когда сервер уже полностью загружен, и пользователь совершает запрос на ресурс, который сервер уже имеет в запасе. Проблема заключается в том, что на сервере нет места для того, чтобы поместить данные, которые посылаются в запросе, чтобы затем выслать запрашиваемый ресурс.

  • 509 Bandwidth Limit Exceeded

Этот код ответа используется при превышении веб-площадкой отведённого ей ограничения на потребление трафика.

Когда этот код может использоваться? Когда на сервере Apache выполняется корректное расширение, и в ISP установлен уровень пропускного канала, который скоро может быть превышен. Существует несколько опций предела.

Когда на сервере отсутствует расширение, которое желает использовать клиент. Когда этот код может использоваться? Когда сервер требует больше информации в совершаемом запросе.

  • 511 Network Authentication Required

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

Когда этот код может использоваться? Когда пользователь предварительно должен дать свое согласие на условия использования, перед тем, как он получит доступ к интернету (например, к Wi-fi точке доступа).

Итак, надеюсь, что данный список хоть как-то окажется вам полезным. Если я упустил что-то из виду,  пожалуйста, допишите информацию в комментариях, и я обязательно включу ее в статью. Пожалуйста, не забудьте поделиться этой статье с друзьями, чтобы они также были в курсе.

great-world.ru

HTTP коды ошибок клиента | IT-блог о веб-технологиях, серверах, протоколах, базах данных, СУБД, SQL, компьютерных сетях, языках программирования и создание сайтов.

Привет, читатель блога ZametkiNaPolyah.ru! Продолжим знакомиться с протоколом HTTP в рубрике Серверы и протоколы и ее разделе HTTP протокол. Эта запись целиком и полностью посвящена ошибка клиента при взаимодействие по HTTP протоколу. Мы с тобой рассмотрим коды ошибок клиента HTTP. Вообще, коды ошибок клиента в HTTP протоколе могут быть расширены любым сервером, мы рассмотрим только коды ошибок клиента, которые указаны в стандарте HTTP 1.1. Сперва, как и обычно при рассмотрение кодов HTTP протокола, мы дадим общее описания кодам ошибок клиента, а затем рассмотрим по отдельности каждый из 18 HTTP кодов ошибок клиента.

HTTP коды ошибок клиента

Общая информация о HTTP кодах ошибок клиента

Содержание статьи:

  • Общая информация о HTTP кодах ошибок клиента
  • HTTP код ошибки 400, код ошибки 401, код ошибки клиента 402, код ошибки 403, HTTP код ошибки клиента 404, ошибка клиента 405
  • HTTP код ошибки 406, код ошибки 407, HTTP код ошибки клиента 408, код ответа сервера 409, код ошибки 410, код ошибки клиента 411, HTTP код 412
  • HTTP код ошибки клиента 413, код ошибки клиента 414, ошибка клиента 415, ошибка 416, HTTP код 417

HTTP коды ошибок клиента говорят пользователю о том, что ему не удалось получить запрашиваемый ресурс, указанный в URI (запись про URI в HTTP), по вине самого пользователя или клиента, например, пользователь ошибся при вводе URL в браузере, в этом случае сервер даст ответ с кодом состояния 404. Все коды ошибок HTTP клиента начинаются с четверки. HTTP сервер всегда в случае ошибки клиента отправляет вместе с кодом состояния пояснения того, почему произошла ошибка, за исключение тех случаев, когда используется HTTP метод HEAD.

Давайте для удобства рассмотрения сведем в одну таблицу все коды ошибок HTTP клиента в одну таблицу. И не будем забывать, что в основе протокола HTTP лежит модель взаимодействия клиент-сервер, которая делит обязанности приложений на клиентские и серверные, рассматриваемый протокол довольно строго придерживается данной модели, и у нас есть специальные коды ошибок, которые происходят по вине серверных приложений и есть коды ошибок, которые происходят по вине человека или клиентского приложения, которым человек пользуется.

Код ошибки HTTP клиентаОписание кода ошибки HTTP клиента
400 Bad RequestКод состояния ошибки HTTP клиента  400: плохой запрос Такой код состояния ошибки клиента вы можете увидеть тогда, когда сервер не понял ваш запрос из-за синтаксической ошибке в HTTP запросе.
401 UnauthorizedКод состояния ошибки HTTP клиента  401: не авторизован Такой код состояния ошибки клиента вы можете увидеть в том случае, если для доступа к ресурсу требуется аутентификация по соображениям безопасности HTTP сервера.
402 Payment RequiredКод состояния ошибки HTTP клиента  402: требуется оплата Этот код состояния ошибки клиента на данный момент пока не используется, он предназначен для платных сервисов, а не для хостингов и интернет-провайдеров.
403 ForbiddenКод состояния ошибки HTTP клиента  403: запрещено Такой код состояния ошибки клиента вы увидите в том случае, когда сервер вас прекрасно понял, но отказывается вам предоставлять доступ к ресурсу из-за того, что у вас недостаточно прав доступа.
404 Not FoundКод состояния ошибки HTTP клиента  404: не найдено Самый популярный код состояния ошибки клиента. Вы его можете увидеть в том случае, когда ошиблись, вводя URL в браузере.
405 Method Not AllowedКод состояния ошибки HTTP клиента  405: метод не дозволен Данный код состояния ошибки клиента можно увидеть в том случае, когда вы используете метод запроса, запрещенный в настройках HTTP сервера.
406 Not AcceptableКод состояния ошибки HTTP клиента  406: не приемлем Этот код состояния вы увидите в том случае, когда HTTP сообщение вашего клиента содержит неправильные параметры для указанного в нем URI.
407 Proxy Authentication RequiredКод состояния ошибки HTTP клиента  407: требуется установления подлинности через прокси-сервер Если вы видите этот код состояния ошибки клиента, то вам нужно пройти аутентификацию на прокси-сервере.
408 Request TimeoutКод состояния ошибки HTTP клиента  408: истекло время ожидания запроса Этот код состояния ошибки HTTP клиента вы увидите тогда, когда сервер устал ждать от вас сообщение.
409 ConflictКод состояния ошибки HTTP клиента  409: конфликт Такой код состояния ошибки клиента будет появляться очень редко, когда будет происходить конфликт действий между двумя пользователями.
410 GoneКод состояния ошибки HTTP клиента  410: удален А этот код состояния ошибки клиента будет показан сервером в том случае, когда ресурс был доступен по указанному URI, но теперь его там нет.
411 Length RequiredКод состояния ошибки HTTP клиента  411: требуется длина Этот код состояния ошибки клиента появляется в том случае, когда серверу нужно обязательно указывать поле заголовка Content-Lenght
412 Precondition FailedКод состояния ошибки HTTP клиента  412: предусловие неверно Сервер вернет HTTP ответ с таким кодом состояния в том случае, когда он не смог выполнить ни одно из условий из запроса клиента.
413 Request Entity Too LargeКод состояния ошибки HTTP клиента  413: объект запроса слишком велик

А такой код ошибки клиента можно увидеть в том случае, когда тело (HTTP объекты и тело сообщения) запроса слишком большое и сервер его получить не смог.

 
414 Request-url Too LongКод состояния ошибки HTTP клиента  414: URI запроса слишком длинный Такой код ошибки клиента сервер выдаст в том случае, если URI запроса слишком длинный.
415 Unsupported Media TypeКод состояния ошибки HTTP клиента  415: неподдерживаемый медиа тип Сервер может выдать такой код состояния ошибки клиента в том случае, если не захочет работать с указанным типом данных (типы данных в HTTP) тем методом, который указан в запросе клиента
416 Requested Range Not SatisfiableКод состояния ошибки HTTP клиента  416: запрашиваемый диапазон не достижим Данный код и ошибки клиента говорит нам о том, что диапазон фрагмента (единицы измерения в HTTP) в поле заголовка Range указан неверно.
417 Expectation FailedКод состояния ошибки HTTP клиента  417: ожидаемое неприемлимо Код состояния ошибки клиента 417 появится в том случае, если сервер не сможет удовлетворить значению, указанному в поле заголовка Expect.

Далее мы рассмотрим более подробно коды ошибок HTTP клиента.

HTTP код ошибки 400, код ошибки 401, код ошибки клиента 402, код ошибки 403, HTTP код ошибки клиента 404, ошибка клиента 405

HTTP код ошибки клиента 400: Bad Request или неверный запрос. Сервер вернет ответ с кодом ошибки 400 в том случае, когда обнаружит, что HTTP запрос клиента содержит синтаксическую ошибку.

HTTP код ошибки клиента 401: Unauthorized или не авторизован. Код ошибки клиента 401 сервер отправляет в том случае, когда для доступа к ресурсу требуется авторизация, при этом ответ HTTP  сервера должен (читай про требования HTTP протокола) включать поле заголовка WWW-Authenticate и перечень условий для аутентификации клиента, после чего клиент может повторить запрос к серверу с полем Authorization, в котором будут указаны все необходимые данные для авторизации.

HTTP код ошибки клиента 402: Payment Required или требуется оплата. Данный код ошибки клиента зарезервирован для будущего использования и предназначен для оповещения клиента о том, что для доступа к ресурсу ему необходимо произвести оплату. Обратите внимание: данный код ошибки клиент не используется ни хостингами, ни интернет-магазина, ни даже интернет-провайдерами.

HTTP код ошибки клиента 403: Forbidden или запрещено. HTTP код ошибки клиента 403 отправляется сервером в том случае, когда он отказывается выполнить ваш запрос, причин на то могут быть разными. При этом сервер не должен сообщать является ли эта мера временной или постоянной. Одной из причин появления HTTP кода 403 может быть то, что у пользователя недостаточно прав доступа к ресурсу.

HTTP код ошибки клиента 404: Not Found или не найдено. HTTP код ошибки клиента 404 – самый популярный код ошибки клиента, код ошибки 404 видел, наверное, каждый. Ведь для того, чтобы увидеть код ошибки 404 достаточно ввести неверный URL.

HTTP код ошибки клиента 405: Method Not Allowed или метод не дозволен. Код ошибки 405 сервер отправляет клиенту в том случае, когда для ресурса, указанного в URI, нельзя применить метод, указанный в запросе клиента. Код ошибки 405 появляется в основном из-за конфигураций безопасности сервера, когда администратор преднамеренно запрещает выполнение тех или иных методов HTTP запросов на сервере. При этом ответ сервера с кодом ошибки 405 должен содержать поле заголовка Allow, в котором будут указаны доступные метода для ресурса.

HTTP код ошибки 406, код ошибки 407, HTTP код ошибки клиента 408, код ответа сервера 409, код ошибки 410, код ошибки клиента 411, HTTP код 412

HTTP код ошибки клиента 406: Not Acceptable или не приемлем.  Код ошибки 406 говорит клиенту о том, что введенный URI не приемлем с теми характеристиками, которые были указаны в HTTP заголовке (читай про параметры HTTP протокола). Если метод запроса был отличным от метода HEAD, то серверу нужно включить в тело сообщения список доступных характеристик для данного URI. Формат HTTP объекта определяется медиа типом в поле заголовка Content-Length и в зависимости от клиента и его возможностей подходящий вариант запроса может быть выбран автоматически, этот код применяется при обсуждении содержимого в HTTP.

HTTP код ошибки клиента 407: Proxy Authentication Required или требуется установление подлинности через прокси-сервер. HTTP код ошибки клиента 407 появится в том случае, когда клиенту для доступа к указанному ресурсу необходимо авторизоваться на прокси-сервере. Когда возникает код ошибки 407 прокси-сервер должен возвратить поле заголовка Proxy-Authenticate содержащее вызов (challenge), применяемый прокси-сервером для запрошенного ресурса. Код ошибки 407 аналогичен по своему действию с кодом 401.

HTTP код ошибки клиента 408: Request Timeout или истекло время ожидания запроса. Код ошибки 408 возникает в том случае, когда клиент не произвел запрос в течение того времени, которое сервер готов ждать, но клиент может повторить запрос.

HTTP код ошибки клиента 409: Conflict или конфликт. Код ошибки клиента 409 возникает в том случае, когда происходит конфликт между несколькими клиентами при доступе к одному ресурсу. Код ошибки 409 показывается клиенту только в том случае, когда тот может устранить конфликт и повторить свой запрос. HTTP ответ сервера должен предоставить максимум информации для пользователя, чтобы он устранил конфликт, и код 409 больше не появлялся. Чаще всего ошибка 409 появляется при использование метода PUT.

HTTP код ошибки клиента 410: Gone или удален. HTTP код ошибки клиента 410 будет отправлен сервером в том случае, когда ресурс удален и сервер не знает, где искать копию ресурса или его новую версию. В том случае, когда у сервера есть информация о том, что ресурс может быть восстановлен, ему не следует показывать ошибку 410, а лучше показать код ошибки 404.

HTTP код ошибки клиента 411: Length Required или требуется длина. Код ошибки 411 будет показан клиенту в том случае, когда серверу для корректной обработки запроса требуется длина содержимого. Клиент может повторить запрос, если добавит допустимое поле заголовка Content-Length, содержащее длину тела сообщения (message-body) в сообщении запроса.

HTTP код ошибки клиента 412: Precondition Failed или предусловие неверно. Код ошибки 412 будет выслан клиенту сервером в том случае, когда сервер не может выполнить условия, указанные в заголовке HTTP запроса.

HTTP код ошибки клиента 413, код ошибки клиента 414, ошибка клиента 415, ошибка 416, HTTP код 417

HTTP код ошибки клиента 413: Request Entity Too Large или объект запроса слишком большой. Код ошибки 413 появляется в том случае, когда объект, передаваемый в запросе клиента слишком большой и сервер его не может обработать. Сервер может закрыть соединение (здесь написано про HTTP соединения), чтобы не дать клиенту возможность продолжить запрос. Если такая ситуация временная, то сервер в своем сообщении вместе кодом ошибки 413 передает поле заголовка Retry-After, в котором указывает время, через которое запрос может быть повторен.

HTTP код ошибки клиента 414: Request-URI Too Long или запроса слишком длинный. Сервер отправляет сообщение с кодом ошибки 414 в том случае, когда URI, указанный в запросе слишком длинный. Ошибка 414 обычно возникает тогда, когда клиент пытается передать кучу параметров методом GET, а следовало бы использовать метод POST.

HTTP код ошибки клиента 415: Unsupported Media Type или неподдерживаемый медиа тип. Код ошибки 415 сервер отправляет в том случае, когда он отказывается обслуживать запрос из-за некорректного типа данных для ресурса, который указан в URI: когда метод выбранный в запросе не соответствует типу данных ресурса.

HTTP код ошибки клиента 416: Requested Range Not Satisfiable или запрашиваемый диапазон не достижим. Сервер отправит сообщение с кодом ошибки 416 в том случае, когда в поле заголовка запроса Range был указан неверный диапазон фрагмента.

HTTP код ошибки клиента 417: Expectation Failed или ожидаемое неприемлемо. Код ошибки 417 появляется в том случае, когда сервер не может удовлетворить значению Expect, которое указано в заголовке HTTP запроса.

Мы рассмотрели коды ошибок HTTP клиента, давайте перейдем к последнему классу кодов состояния — HTTP коды ошибок серевра. Позволю себе напомнить, что в HTTP еще есть информационные коды состояния, успешные коды состояния и коды перенаправления. А если тебе нужна информацию обо всех кодах состояния, обратись к справочнику HTTP кодов состояния, в котором есть полное описание всех кодов.

Не забывайте делиться своим мнением в комментариях и оставлять отзывы, это поможет сделать нашу работу лучше, с уважением ZametkiNaPolyah.ru!

zametkinapolyah.ru

The remote peer is no longer responding


Сами изготовители дают следующее решение:
Windows Error 412

Если вы запускали соединение в ОС Windows Vista или Windows XP, то могли столкнуться с проблемой “412: The remote peer is no longer responding.”

Для исправления это баги в Windows Vista или Windows XP, обновите на девайсах NAT. Если это не помогло, переключите на TCP. Если переключение на TCP не решило геморроя, возможно поможет использование специального ключа в профиле подключения(*.pcf):

UseLegacyIKEPort=1

Если вы используете Domain Isolation, не прибегайте к помощи ключа UseLegacyIKEPort, т.к. он конфликтует с Microsoft Domain Isolation.


Оно часто срабатывает, но не всегда)

Процитирую еще немного из распространенных решений:

The error: “Secure VPN connection terminated locally by the Client. Reason 412: The remote peer is no longer responding” means the software VPN Client detected that the VPN server is not responding anymore and deleted the connection. This is caused by several different reasons, for example:

* The user is behind a firewall that is blocking ports UDP 4500/500 and/or ESP.
* The VPN client is using connecting on TCP and the default TCP port 10000 for NATT is blocked.
* The internet connection is not stable and some packets are not reaching the VPN concentrator/server or the replies from the server/concentrator aren’t getting to the client, hence the client thinks the server is no longer available.
* The VPN client is behind a NAT device and the VPN Server doesn’t have NAT-T enabled. In this case the user will not be able to send or receive traffic at all. It will be able to connect but that’s all. After some time the software client deletes the VPN tunnel.

Suggested solutions:

* If you are using wireless, try to connect with cable
* Turn your firewall off, then test the connection to see whether the problem still occurs. If it doesn’t then you can turn your firewall back on, add exception rules for port 500, port 4500 and the ESP protocol in your firewall
* Turn on NAT-T/TCP in your profile ( remember to unblock port 10000 in your firewall)
* Edit your profile with your editor and change ForceKeepAlive=0 to 1


Так-же немного о возможных багах по-русски:

1. Блокирование пакетов на firewall (как описано выше) – проверить на всем пути следования пакетов. Если все нормально, смотрим дальше..

2. Неполноценный NAT через бюджетный router (на некоторых по-умолчанию не натируются порты выше 1024) – соответственно проверить логи на предмет отброса пакетов по портам

3. Ошибка авторизации – тут много причин, курить логи))

4. Потери на линии – банально, но факт… клиент в отведенный ему определенный промежуток времени не получил отклик от сервера по причине потери пакетов.. Ну или по причине больших задержек. Что нас и приводит к следующему пункту…

5. Слишком высокая нагрузка на канала – при модных сейчас 3G модемах весьма актуально))

6. Ну или, как писано где-то на просторах мелкософта (где не помню):

Ошибка 412 -Условие указанное в заголовке не выполняется.

412 Сбой при обработке предварительного условия.При проверке на сервере одного или более полей заголовка запроса обнаружено несоответствие (сбой или ошибка при обработке предварительного условия). Получен код 412 Precondition Failed.

412 Precondition Failed (не выполнено предварительное условие) – сервер отказывается обрабатывать запрос, потому что объект запроса больше, чем сервер желает или способен обработать. Сервер может закрыть соединение, чтобы не дать клиенту возможность продолжить запрос. Если это временное состояние, то серверу СЛЕДУЕТ включить поле заголовка Retry-After для указания времени, через которое клиент может снова повторить запрос


Т.е. возможно проблема с самим передаваемым пакетом. Я может, конечно, и параноик, но все-же… если ни чего другого не помогло, все-же стоит посмотреть в сторону “подлых партизан”, которые перехватывают и подменивают пакеты в трафике? 😉

7. Так-же где-то пробегало сообщение о несоответствии версий VPN клиентов и ОС – возможно стоит уточнить…
В общем, курите сию ссылку – так много написано, что переводить и разжевывать просто влом))
———-
PS: и да! самое главное не сказал!)) это проблема в основном софтварная, а не железная. Ну и тем более ни как не вашего провайдера. Так что зачастую ноги у проблемы растут ровно оттуда, откуда дурно пахнущие руки 😉

www.epol.su