Содержание

Коды ответов сервера. Ошибки 404, 407, 408, 500, 502, 503 и другие статусы.

Коды ответов сервера или, как их еще называют, коды состояния HTTP (англ. HTTP Status Codes) передаются в заголовке ответа сервера на запрос клиента по протоколу HTTP, и содержат информацию о том, насколько серверу удалось обработать запрос клиента.

Звучит сложновато? На самом деле ничего сложного в этом нет. Смотрите..

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

Взаимодействие клиента и сервера происходит путем обмена сообщениями. Сообщения от клиента называются запросами (request), а сообщения от сервера — ответами (response). Каждое сообщение должно содержать заголовок и может содержать так называемое тело.

Когда какой-либо веб-клиент (браузер или поисковый робот) запрашивает у сервера информацию (страницу, файл или другие данные), сервер пытается выполнить запрос и отдать результат клиенту (ведь клиент всегда прав 😉 Если серверу это удается, он сообщает об этом (в заголовке ответа) и отдает (в теле ответа) то, что нужно клиенту. Но бывает и такое, что сервер не может найти нужный файл/страницу, или он перегружен запросами, или для доступа к контенту нужна авторизация, или еще что-то. Обо всем этом он также должен сообщить клиенту. Клиент и сервер общаются они при помощи кодов. Получив ответ от сервера, клиент должен его обработать согласно коду состояния.

Эти коды стандартизированы и используются всеми серверами и клиентами, которые взаимодействуют при помощи протокола HTTP. Они состоят из 3 цифр, первая из которых указывает на класс (категорию) кода статуса. Существует 5 классов:

1ххInformation (Информация) — временные коды, при помощи которых сервер сообщает клиенту о том, что он принял и обрабатывает запрос

2ххSuccess (Успешное выполнение) — передаются при успешной обработке запроса

3ххRedirection (Перенаправление) — сообщают о том, что для выполнения запроса клиенту нужно выполнить дополнительные действия.

4ххClient Error (Ошибка на стороне клиента) — сервер сообщает, что не может выполнить запрос, т.к. он содержит ошибку.

5ххServer Error (Ошибка на стороне сервера) — запрос был принят, но сервер не может его обработать

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

Давайте рассмотрим указанные выше классы с их наиболее распространенными кодами и особенно подробно разберем последние два класса кодов.

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хх Перенаправление

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

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

300 Multiple Choices

HTTP код 300 означает, что по указанному адресу находятся сразу несколько ресурсов (например, файлы с разным MIME-типом, разные языковые версии страницы, разные форматы видео- или аудио-ресурса), и сервер предлагает клиенту выбрать из списка ресурсов, который также передается в ответе.

301 Moved Permanently

Если клиент получает от сервера ответ с кодом HTTP статуса 301 Moved Permanently — это значит, что запрашиваемый ресурс окончательно перенесен на новое место, так сказать на ПМЖ 😉 (permanent — постоянный). Новый адрес также передается в заголовке ответа.

Если вы переносите проиндексированную поисковиками страницу и не хотите потерять трафик на нее, убедитесь, что по старому адресу возвращается код 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 и способы их устранения.

На стороне клиента

  • В адресе запрашиваемого ресурса допущена ошибка. Проверьте, правильно ли указан путь, нет ли ошибок в регистре (некоторые части URL могут быть чувствительны к регистру), нет ли недопустимых спец. символов (например, пробела).
  • Клиент пытается загрузить файл, размер которого превышает максимально допустимый. Убедитесь, что загружаемый вами файл меньше допустимого размера и загрузка файлов такого типа разрешена.
  • Сервер распознает в запросе клиента признаки ложного запроса и, расценив его как атаку, блокирует. В своем запросе клиент должен передавать определенные заголовки, которые позволяют серверу его идентифицировать. Если этих заголовков нет или сервер находит в них ошибку, он отвечает HTTP кодом 400. Часто такая ситуация возникает, клиент использует устаревшие и недействительные файлы куки. Поэтому стоит их удалить или, если вы авторизованы, выйти из аккаунта и снова войти.

На стороне сервера

  • Ошибка 400 появилась после недавнего обновления CMS сайта или добавления/обновления используемых им плагинов. Если это так, попробуйте «откатиться» до предыдущей версии и/или удалить недавно установленные плагины.
  • Ошибка 400 появилась без вмешательства в код. Необходимо проверить логи сервера, чтобы понять, что могло ее вызвать, т.к. причины могут быть самые разные от неправильной конфигурации сервера до опечаток в исходном коде сайта.

Ошибка 401 Unauthorized

Что означает HTTP статус 401 Unauthorized?

Unauthorized переводится как «неавторизован». При помощи кода 401 сервер сообщает клиенту, что для доступа к ресурсу требуется авторизация, и клиент должен отправить в следующем запросе заголовок WWW-Authenticate с именем пользователя и паролем. В противном случае, либо если передано неверное имя или пароль, сервер снова вернет ошибку 401.

Как исправить 401 Unauthorized? 

Если вы пользователь сайта

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

Коды ответов сервера и ошибки. 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 точке доступа).

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

Новые коды состояния HTTP / Хабр

На рассмотрение в IETF поданы спецификации новых кодов состояния HTTP, которые более точно описывают некоторые типичные ситуации.

428 Precondition Required
429 Too Many Requests
431 Request Header Fields Too Large 
511 Network Authentication Required

Код состояния 428 (precondition required) означает, что серверу требуются условия выполнения запроса. Это типичная ситуация, когда клиент получает данные по GET, модифицирует их и отправляет назад на сервер через PUT, но к тому времени они уже были модифицированы другим клиентом, из-за чего возникает конфликт. Требуя обусловленного запроса, сервер защищается от возникновения конфликта. При этом обязательно должны быть указаны условия для корректной отправки данных на сервер.

HTTP/1.1 428 Precondition Required
Content-Type: text/html

<html>
   <head>
      <title>Precondition Required</title>
   </head>
   <body>
      <h2>Precondition Required</h2>
         <p>This request is required to be conditional;
            try using "If-Match".</p>
   </body>
</html>

Код состояния 429 (too many requests) означает, что пользователь отправил слишком много запросов в заданный период времени. Ответ должен содержать объяснение нарушенного условия и может содержать заголовок Retry-After с указанием времени, которое нужно подождать перед повтором.

HTTP/1.1 429 Too Many Requests
Content-Type: text/html
Retry-After: 3600

<html>
   <head>
      <title>Too Many Requests</title>
   </head>
   <body>
      <h2>Too many Requests</h2>
      <p>I only allow 50 requests per hour to this Web site per
         logged in user. Try again soon.</p>
   </body>
</html>

Код состояния 431 (request header fields too large) используется тогда, когда сервер отказывает в обработке запроса из-за того, что один или несколько заголовков в сумме превышают норму. Во втором случае в ответе должно содержаться указание, какой именно заголовок вызвал проблему.

HTTP/1.1 431 Request Header Fields Too Large
Content-Type: text/html

<html>
   <head>
      <title>Request Header Fields Too Large</title>
   </head>
   <body>
      <h2>Request Header Fields Too Large</h2>
      <p>The "Example" header was too large.</p>
   </body>
</html>

Код состояния 511 (network authentication required) означает, что нужно выполнить аутентификацию, при этом в ответе должна содержаться инструкция о том, как это сделать, например, с помощью HTML-формы по указанному адресу. Ошибку 511 возвращает не целевой сервер, а прокси, который не пускает пользователя в сеть (например, маршрутизатор в зоне платного Wi-Fi при неавторизованном доступе).

Например, пользователь отправляет HTTP-запрос по TCP на порт 80.

GET /index.htm HTTP/1.1
Host: www.example.com

Логин-сервер возвращает такой ответ.

HTTP/1.1 511 Network Authentication Required
Refresh: 0; url=https://login.example.net/
Content-Type: text/html

<html>
   <head>
      <title>Network Authentication Required</title>
   </head>
   <body>
      <p>You need to <a href="https://login.example.net/">
      authenticate with the local network</a> in order to get
      access.</p>
   </body>
</html>

Список кодов состояния HTTP — это… Что такое Список кодов состояния HTTP?

Код состояния HTTP (англ. HTTP status code) — часть первой строки ответа сервера при запросах по протоколу HTTP. Он представляет собой целое число из трех арабских цифр[1]. Первая цифра указывает на класс состояния. За кодом ответа обычно следует отделённая пробелом поясняющая фраза на английском языке, которая разъясняет человеку причину именно такого ответа. Примеры:

  • 201 Webpage Created.
  • 403 Access allowed only for registered users.
  • 507 Insufficient Storage.

Клиент узнаёт по коду ответа о результатах его запроса и определяет какие действия ему предпринимать дальше. Набор кодов состояния является стандартом, и они описаны в соответствующих документах RFC. Введение новых кодов должно производиться только после согласования с IETF. Тем не менее, известно о двух используемых кодах, не упомянутых в RFC: 449 Retry With. Так же упоминается пояснительная фраза «Reply With»[2] в спецификации по WebDAV в Microsoft Developer Network, введённый Microsoft и 509 Bandwidth Limit Exceeded, введённый в cPanel. Компания Google предложила комитету IETF использовать HTTP-код 451 для уведомления о преднамеренном блокировании порталов[3].

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

Веб-сервер Internet Information Services в своих файлах журналов кроме стандартных кодов состояния использует подкоды, записывая их через точку после основного. При этом в ответах от сервера данный подкод не размещается — он нужен администратору сервера чтобы тот мог более точно определять источники проблем.

Обзорный список

Ниже представлен обзорный список всех описанных в данной статье кодов ответа:

Диаграмма принятия веб-сервером решений на основе заголовков

Статистика по кодам ответа, сгенерированная анализатором логов Webalizer

Статистика по ошибкам HTTP, сгенерированная лог-анализатором AWStats

Описание кодов

Информационные

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

  • 100 Continue — сервер удовлетворён начальными сведениями о запросе, клиент может продолжать пересылать заголовки. Появился в HTTP/1.1.
  • 101 Switching Protocols — сервер предлагает перейти на более подходящий для указанного ресурса протокол; список предлагаемых протоколов сервер обязательно указывает в поле заголовка Update. Если клиента это заинтересует, то он посылает новый запрос с указанием другого протокола. Появился в HTTP/1.1.
  • 102 Processing — запрос принят, но на его обработку понадобится длительное время. Используется сервером, чтобы клиент не разорвал соединение из-за превышения времени ожидания. Клиент при получении такого ответа должен сбросить таймер и дожидаться следующей команды в обычном режиме. Появился в WebDAV.

Успех

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

  • 200 OK — успешный запрос. Если клиентом были запрошены какие-либо данные, то они находятся в заголовке и/или теле сообщения. Появился в HTTP/1.0.
  • 201 Created — в результате успешного выполнения запроса был создан новый ресурс. Сервер должен указать его местоположение в заголовке Location. Серверу рекомендуется[источник не указан 278 дней] ещё указывать в заголовке характеристики созданного ресурса (например, в поле Content-Type). Если сервер не уверен, что ресурс действительно будет существовать к моменту получения данного сообщения клиентом, то лучше использовать ответ с кодом 202. Появился в HTTP/1.0.
  • 202 Accepted — запрос был принят на обработку, но она не завершена. Клиенту не обязательно дожидаться окончательной передачи сообщения, так как может быть начат очень долгий процесс. Появился в HTTP/1.0.
  • 203 Non-Authoritative Information — аналогично ответу 200, но в этом случае передаваемая информация была взята не из первичного источника (резервной копии, другого сервера и т. д.) и поэтому может быть неактуальной. Появился в HTTP/1.1.
  • 204 No Content — сервер успешно обработал запрос, но в ответе были переданы только заголовки без тела сообщения. Клиент не должен обновлять содержимое документа, но может применить к нему полученные метаданные. Появился в HTTP/1.0.
  • 205 Reset Content — сервер обязывает клиента сбросить введённые пользователем данные. Тела сообщения сервер при этом не передаёт и документ обновлять не обязательно. Появился в HTTP/1.1.
  • 206 Partial Content — сервер удачно выполнил частичный GET-запрос, возвратив только часть сообщения. В заголовке Content-Range сервер указывает байтовые диапазоны содержимого. Особое внимание при работе с подобными ответами следует уделить кэшированию. Появился в HTTP/1.1. (подробнее…)
  • 207 Multi-Status — сервер передаёт результаты выполнения сразу нескольких независимых операций. Они помещаются в само тело сообщения в виде XML-документа с объектом multistatus. Не рекомендуется размещать в этом объекте статусы из серии 1xx из-за бессмысленности и избыточности. Появился в WebDAV.
  • 226 IM Used — заголовок A-IM от клиента был успешно принят и сервер возвращает содержимое с учётом указанных параметров. Введено в RFC 3229 для дополнения протокола HTTP поддержкой дельта-кодирования.

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

Коды этого класса сообщают клиенту, что для успешного выполнения операции необходимо сделать другой запрос, как правило, по другому URI. Из данного класса пять кодов 301, 302, 303, 305 и 307 относятся непосредственно к перенаправлениям. Адрес, по которому клиенту следует произвести запрос, сервер указывает в заголовке Location. При этом допускается использование фрагментов в целевом URI.

По последним стандартам клиент может производить перенаправление без запроса пользователя только если второй ресурс будет запрашиваться методом GET или HEAD[7]. В предыдущих спецификациях говорилось, что для избежания круговых переходов пользователя следует спрашивать после 5-го подряд перенаправления[12]. При всех перенаправлениях, если метод запроса был не HEAD, то в тело ответа следует включить короткое гипертекстовое сообщение с целевым адресом, чтобы в случае ошибки пользователь смог сам произвести переход.

Разработчики HTTP отмечают, что многие клиенты при перенаправлениях с кодами 301 и 302 ошибочно применяют метод GET ко второму ресурсу, несмотря на то, что к первому запрос был с иным методом (чаще всего PUT)[13]. Чтобы избежать недоразумений, в верс

Успешные коды состояния HTTP сервера

Привет, читатель блога 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 сервера: 100, 101

Привет, читатель блога ZametkiNaPolyah.ru! Продолжим знакомиться с протоколом HTTP в рубрике серверы и протоколы и ее разделе HTTP протокол. Мы с тобой уже рассмотрели классы кодов состояний HTTP сервера, давай теперь разберем особенности первого класса: это информационные коды состояния HTTP сервера, которые начинаются с единицы. Информационные коды состояния используются для предварительных ответов сервера на запросы клиента.

Информационные коды состояний HTTP сервера: HTTP код 100 и код 101

Общая информация про информационные коды состояния HTTP сервера

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

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

Давайте сведем в таблицу все информационные HTTP коды состояний и дадим им краткое пояснение.

Информационный код состоянияОписание информационного кода состояния
100 ContinueИнформационный код состояния HTTP сервера  100: продолжай
Код состояния 100 говорит о том, что запрос получен, но находится в процессе обработки
101 Switching ProtocolsИнформационный код состояния HTTP сервера  100: переключи протокол
Код состояния 101 говорит о том, что сервер переключает протокол

HTTP код состояния 100 (продолжать). HTTP код состояния 101 (переключения протоколов)

HTTP код состояния 100 говорит о том, что клиент может продолжать запрос. Ответ сервера, содержащий код 100, является промежуточным и означает то, что начальная часть запроса получена и сервер ждет продолжения.

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

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 код состояния и его описание
1HTTP коды состояний 1xx: информационные коды состояния
Такой код состояния сервер высылает в том случае, когда запрос получен, но еще не обработан.
2HTTP коды состояний 2xx: успешные коды состояния
Сервер отправит вам такой код в том случае, когда он успешно принял и обработал HTTP сообщение клиента.
3HTTP коды состояний 3xx: коды перенаправления
Если вы получили от сервера код состояния, начинающийся на тройку, то это означает, что нужны дополнительные действия, чтобы завершить процесс обработки HTTP запроса.
4HTTP коды состояний 4xx: коды ошибок клиента
Если вы увидели код состояния, который начинается с четверки, то это означает, что произошла ошибка по вине клиента.
5HTTP коды состояний 5xx: коды ошибок сервера
Код состояния, начинающийся с пятерки, говорит о том, что произошла ошибка на стороне сервера.

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

Полное руководство: коды статуса HTTP

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

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

В этой статье наиболее распространенные коды статуса и коды ошибок.

Каждый раз, когда вы кликаете по ссылке или вводите URL-адрес и нажимаете «Enter», браузер отправляет запрос на сервер. Он получает и обрабатывает запрос, а затем отправляет обратно запрашиваемые ресурсы вместе с HTTP-заголовком.

Коды статуса доставляются в браузере в HTTP-заголовке. Хотя вы их не видите. Но когда что-то пошло не так, пользователю отображается код статуса в браузере.Это способ сервера сказать: «Что-то не так. Вот код, который объясняет, что именно ».

Код статуса HTTP Google 404

Чтобы увидеть коды статуса, которые браузер обычно не отображает, потребуются специальные инструменты. Для популярных браузеров, таких как Chrome и Firefox, доступны соответствующие расширения. Также существует много сервисов для отображения заголовков, например Web Sniffer.

увидеть код статуса HTTP с помощью одного из этих инструментов, используя определенную в верхней части отчета, в которой указано: «Статус: HTTP / 1.1 ”. После нее указан код статуса, возвращаемый сервером.

Коды статуса HTTP разделены на 5:

  • 100: информационные коды, указывающие классы, что запрос, инициированный браузером, продолжается.
  • 200: коды успешного запроса. Возвращаются, когда запрос был успешно получен, распознан и обработан сервером.
  • 300: коды перенаправления возвращаются, когда запрошенный ресурс заменен новым.
  • 400: http-ошибки, обнаруживающие на стороне клиента и указывающие на наличие проблемы с запросом.
  • 500: коды ошибок сервера, указывающие, что запрос был принят, но ошибка на сервере не позволила выполнить его.

Существует более 40 различных кодов статуса сервера. Но тех, с разными вы будете регулярно сталкиваться меньше дюжины. Ниже представлен список кодов статуса HTTP:

200: «Все в порядке». Это код, который возвращается, когда веб-страница или ресурс точно так, как ожидается.

301: «Запрошенный ресурс был перемещен навсегда».Этот код возвращается, когда веб-страница или ресурс заменяется другим ресурсом. Он используется для постоянного редиректа URL-адресов.

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

304: «Запрошенный ресурс не был изменен с момента последнего к нему». Сообщает, что ресурсы, хранящиеся в кэше, не изменились.Он используется для ускорения доставки веб-страниц за счет повторного использования ранее загруженных ресурсов.

401: «Не авторизован». Возвращается сервером, когда для доступа к целевому ресурсу отсутствуют валидные учетные данные.

http-ошибка 403: «Доступ к этому ресурсу запрещен». Возвращается, когда пользователь пытается открыть ресурс, для которого у него нет прав доступа. Например, попытка просмотра неавторизованным контентом, защищенным паролем, может привести к ошибке 403.

404: «Запрошенный ресурс не найден». Наиболее распространенное сообщение об ошибке. Означает, что запрошенный ресурс не существует и сервер не знает, существовал ли он когда-либо.

405: «Метод не разрешен». Генерируется, когда хостинг-сервер (исходный сервер) поддерживает полученный метод, но целевой ресурс отсутствует.

406: «Неприемлемый ответ». Запрошенный ресурс генерировать только контент, неприемлемый в соответствии с заголовками Принять, отправленными в запросе.

408: «Время ожидания сервером поступления остальной части запроса из истекло». Генерируется, когда сервер прерывает обработку после истечения времени ожидания полного запроса от. Другими словами, сервер не получил полный запрос, отправленный браузером. Одной из причин может быть перегрузка сети, приводящая к потере пакетов между браузером и сервером.

410: «Запрошенный ресурс отсутствует и не будет возвращен». Подобен коду 404 «Не найден», за исключением того, что код статуса 410 указывает, что данный статус ожидается на постоянной основе.

429: это http-ошибка «Слишком много запросов». Генерируется сервером, когда пользователь отправил слишком много запросов в заданный промежуток времени (ограничение по скорости). Иногда причиной ошибки могут быть боты, пытающиеся получить доступ к сайту. В этом случае может потребоваться изменение URL-адреса входа в панель администрирования WordPress.

499: «Клиент закрыл запрос». Возвращается NGINX, когда клиент закрывает запрос, пока NGINX все еще обрабатывает его.

500: «На сервере возникла ошибка, и запрос не мог быть завершен». Общий http-код, который также называют «внутренняя ошибка сервера». На сервере что-то пошло не так и запрошенный ресурс не был доставлен. Этот код генерирует сторонними плагинами, при сбоях PHP-кода или подключения к базе данных.

501: «Не реализовано». Эта ошибка указывает на то, что сервер не поддерживает функции, необходимые для выполнения запроса. Ошибка почти всегда связана с самим сервером, и для ее решения нужно обратиться к службе поддержки хостинг-провайдера.

502: это http-ошибка «Некорректный шлюз». Означает, что один сервер получил неверный ответ от другого. Иногда запрос занимает слишком много времени, и поэтому отменяется или удаляется сервером, а соединение с базой данных прерывается.

503: это http-ошибка «В данный момент сервер не может обработать запрос». Запрос не может быть обработан прямо сейчас. Этот код возвращается перегруженным сервером, который не может обрабатывать новые запросы.

504: «Сервер, действующий как шлюз, не смог дождаться от другого сервера».Возвращается, когда в обработке запроса было задействовано два сервера, и на первом сервере истекло время ожидания от второго сервера.

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

  • Полный список кодов статуса HTTP — Википедия;
  • Определения кодов статуса — Инженерная группа Интернета (IETF);
  • RFC 7231.

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

телеграм канал. Подпишись, будет полезно!

.

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 Плохой запрос Код состояния ошибки HTTP клиента 400: плохой запрос
Такой код состояния ошибки клиента вы можете увидеть тогда, когда сервер не понял ваш запрос из-за синтаксической ошибки в HTTP-запросе.
401 Неавторизованный Код состояния ошибки HTTP-клиента 401: не авторизован
Такой код состояния клиента может увидеть в случае, если для доступа к ресурсу требуется аутентификация по соображениям безопасности HTTP-сервера.
402 Требуется оплата Код состояния ошибки HTTP клиента 402: требуется оплата
Этот код состояния ошибки клиента на данный момент используется, он предназначен для платных сервисов, а не для хостингов и интернет-провайдеров.
403 Запрещено Код состояния ошибки HTTP клиента 403: Правила
Такой код состояния ошибки клиента в том случае, когда сервер понимает, что у вас есть доступ к ресурсу из-за того, что у вас недостаточно прав доступа.
404 Не найдено Код состояния ошибки HTTP-клиента 404: не найдено
Самый популярный код состояния ошибки клиента. Вы можете увидеть в том случае, когда ошиблись, вводя URL-адрес в браузере.
405 Метод запрещен Код состояния ошибки HTTP клиента 405: метод не дозволен
Данный код состояния ошибки клиента можно увидеть в том случае, когда вы используете метод запроса, запрещенный в настройках HTTP-сервера.
406 Неприемлемо Код состояния ошибки HTTP клиента 406: не приемлемо
Этот код состояния вы видите в том случае, когда сообщение вашего клиента содержит неправильные параметры для нового URI в нем.
407 Требуется проверка подлинности прокси Код состояния ошибки HTTP-клиента 407: требуется проверка подлинности через прокси-сервер .
Если вы видите этот код ошибки состояния клиента, то вам нужно пройти аутентификацию на прокси-сервере.
408 Тайм-аут запроса Код состояния ошибки HTTP-клиента 408: истекло время ожидания запроса
Этот код состояния ошибки HTTP вы увидите тогда, когда сервер устал ждать от вас сообщение.
409 Конфликт Код состояния ошибки HTTP клиента 409: конфликт
Такой код состояния ошибки клиента будет появляться очень редко, когда будет происходить конфликт между двумя пользователями.
410 Исчез Код состояния ошибки HTTP клиента 410: удален
А этот код состояния ошибки клиента будет показан сервером в том случае, когда ресурс доступен по указанному URI, но теперь его там нет.
411 Требуемая длина Код состояния ошибки HTTP клиента 411: требуется длина
Этот код состояния ошибки появляется в том случае, когда серверу нужно обязательно указать поле заголовка Content-Lenght
412 Ошибка предварительного условия Код состояния ошибки HTTP клиента 412: предусловие неверно
Сервер вернет HTTP ответ с таким кодом состояния в том случае, когда он не смог выполнить ни одно из условий из запроса клиента.
413 Слишком большой объект запроса Код состояния ошибки HTTP клиента 413: объект запроса слишком велик

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

414 Слишком длинный URL-адрес запроса Код состояния ошибки HTTP клиента 414: URI запроса слишком длинный
Такой код ошибки клиента сервер выдачи в том случае, если URI запроса слишком длинный.
415 Неподдерживаемый тип носителя Код состояния ошибки HTTP-клиента 415: неподдерживаемый медиа тип
Сервер может выдать такой код ошибки состояния клиента в том случае, если не захочет работать с указанным типом данных (тип данных в HTTP) тем методом, который указан в запросе клиента
416 Запрошенный диапазон Не выполняется Код состояния ошибки HTTP клиента 416: запрашиваемый диапазон не достижим
Код и ошибки клиента говорит нам о том, что диапазон фрагмента (данного измерения в HTTP) в поле заголовка Диапазон указан неверно.
417 Неудачное ожидание Код состояния ошибки HTTP-клиента 417: ожидаемое неприемлимо
Код состояния клиента ошибки 417 появится в случае, если сервер не удовлетворит значение значению, указанному в поле заголовка Expect.

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

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

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

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

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

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

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

HTTP-код ошибки клиента 405: Метод не разрешен или метод не дозволен.Код ошибки 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: Требуется проверка подлинности через прокси-сервер или требуется установление подлинности через прокси-сервер. Код ошибки клиента 407 появится в том случае, когда клиенту для доступа к указанному ресурсу необходимо авторизоваться на прокси-сервере. Когда возникает код ошибки 407 прокси-сервер должен возвратить поле заголовка Proxy-Authenticate, содержащее вызов (вызов), применяемый прокси-сервер для запрошенного ресурса. Код ошибки 407 аналогичен по своему действию с кодом 401.

HTTP-код клиента 408: Тайм-аут запроса или истекло время ожидания запроса. Код ошибки 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: Запрошенный диапазон не удовлетворяется или запрашиваемый диапазон не достижим. Сервер отправит сообщение с кодом ошибки 416 в том случае, когда в поле заголовка запроса Range был указан неверный диапазон фрагмента.

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

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

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

.

Успешные коды состояния HTTP сервера

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

Успешные коды состояния HTTP сервера: 200, 201, 202, 203, 204, 205, 206

Общее описание успешных кодов состояний HTTP сервера

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

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

Успешный код состояния Описание успешного кода состояния HTTP севера
200 ОК Успешный код состояния HTTP сервера 200: хорошо
Код состояния 200 говорит клиенту о том, что его запрос удачно выполнен.
201 Создано Успешный код состояния HTTP сервера 201: создан
Код состояния 201 сообщает нам о том, что новый ресурс был создан успешно.
202 Принято Успешный код состояния HTTP сервера 202: принято
Код состояния 202 сообщает клиенту о, что HTTP-запрос успешно принят на обработку, но обработка еще не завершена, в этом случае сервер может отказать в обслуживании запроса клиента.
203 Неавторизованная информация Успешный код состояния HTTP сервера 203: не авторская информация
Код состояния 203, отправленный в HTTP-ответе, сообщает клиент о том, что возвращенная в заголовке HTTP-объекта информация — это не оригинал, есть на первоначальном сервере, документ, собранный из локальных копий или копий третьей стороны.
204 Нет содержимого Успешный код состояния HTTP сервера 204: нет содержимого
Код состояния 204 говорит клиенту о том, что в ответном HTTP-сообщении нет тела (про тело объекта HTTP).
205 Сбросить содержимое Успешный код состояния HTTP сервера 205: сбросить содержимое
Если браузер получит код состояния 205, то он должен очистить форму, чтобы получить дополнительные данные.
206 Частичное содержимое Успешный код состояния HTTP сервера 206: частичное содержимое
Код состояния 206 говорит браузеру о, что HTTP-сервер выполнил частичный GET запрос клиента (про методы HTTP).Чтобы получить код запроса, введите должен ввести поле заголовка Диапазон, который указывает диапазон (вспоминаем диапазоны значений и параметров HTTP).

Перейдем к рассмотрению HTTP-кодов состояний из класса 2хх (если ты еще не знаешь про классы состояния HTTP)

HTTP-код состояния 200 (успешно). HTTP код состояния 201 (создан). HTTP-код состояния 202 (принято)

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

Метод HTTP запрос Содержимое HTTP ответа с кодом 200
ПОЛУЧИТЬ В ответ на метод GET клиент получит сообщение HTTP с кодом 200 и объект, который расположен по указанному URI в запросе (URI в HTTP).
ПОСТ Если клиент отправляет запрос методом POST, то в ответ он получает сообщение с кодом состояния 200 с описанием объекта или результатом действия метода POST.
СЛЕД Клиент, отправивший запрос методом TRACE, получит HTTP-ответ с кодом состояния 200, который будет содержать сообщение, полученное конечным сервером.
ГОЛОВКА В ответ на метод 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 кодов состояния, в котором есть полное описание всех кодов.

.

Внутренняя ошибка сервера 500 — Что это за ошибка и причины ее возникновения

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

Где и когда можно встретить ошибку 500

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

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

Отображаться ошибка может по-разному. Вот пример:

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

Если ошибка появилась на вашем сайте, то нужно скорее ее исправлять. Далее я расскажу, как это можно сделать.

Причины возникновения ошибки

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

Основная причина ошибки 500 может быть:

  1. Неверный синтаксис файла.htaccess . htaccess — это файл, в котором можно задавать настройки для работы с веб-сервером Apache и вносить изменения в работу сайта (управлять различными перенаправлениями, правами доступа к файлам, опциями PHP, задавать собственные страницы ошибок и т.д.).
    Узнать больше о файле .htaccess можно в статье «Создание и настройка .htaccess».
  2. Ошибки в скриптах сайта , есть сценарии, созданные для автоматического выполнения задач или расширения функций сайта.
  3. Нехватка оперативной памяти при выполнении скрипта.
  4. Ошибки в коде CMS, системы управления содержимым сайта. В 80% случаев виноваты конфликтующие плагины.

Как получить больше данных о ошибке

Что означает ошибка 500, мы теперь знаем. Когда она перестала быть таким загадочным персонажем, не страшно копнуть глубже — научиться определять причину ошибки. В некоторых случаях это можно сделать самостоятельно, так что обращаться за помощью к профильному специалисту не понадобится.

Отображение ошибки бывает разным. Ее внешний облик зависит от того, чем она вызвана.

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

  1. Сообщение Внутренняя ошибка сервера говорит о том, что есть проблемы с файлом .htaccess (например, виновата некорректная настройка файла). Убедиться, что .htaccess является корнем проблемы, поможет следующий прием: переименуйте файл.htaccess, добавив единицу в конце названия. Это можно сделать с помощью FTP-клиента (например, FileZilla) или файлового менеджера на вашем хостинге (вTimeweb такой есть, с ним довольно удобно работать). После изменения проверьте доступность сайта. Если ошибка больше не наблюдается, вы нашли причину.
  2. Сообщение HTTP ERROR 500 или пустая страница говорит о проблемах со скриптами сайта. В случае пустой страницы стоит учесть, что отсутствие содержимого сайта не всегда указывает на внутреннюю ошибку сервера 500.

Давайте узнаем, что скрывается за пустыми инструментами, обратившись к инструментам разработчика. Эта браузерная панель позволяет получить информацию об ошибках и другие данные (время загрузки страницы, html-элементы и т.д.).

Как открыть панель разработчика

  • Нажмите F12 (способ актуален для широко браузеров в Windows). Используйте сочетание клавиш Cmd + Opt + J, если используете Google Chrome на macOS. Или примените комбинацию Cmd + Opt + C в случае Safari на macOS (но перед этим включите «Меню разработки» в разделе «Настройки» -> «Продвинутые»).Открыть инструменты разработчика также можно, если кликнуть правой кнопкой мыши в любом месте веб-страницы и выбрать «Просмотреть код» в контекстном меню.
  • Откройте вкладку «Сеть» и взгляните на число в поле «Статус». Код ответа об ошибке 500 — это соответствующая цифра.

Более детальную диагностику можно провести с помощью логов.

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

Как вы видите, данные в логи записывается немало, поэтому они разделены по типам. За сведениями о нашей ошибке можно обратиться к ам ошибок (error_log). Обычно такие логи предоставляют службу поддержки хостинга, на котором размещен сайт. В Timeweb вы можете включить ведение логов и необходимые данные в панели управления. Разобраться в полученных логах поможет статья «Чтение логов».

Как устранить ошибку

Теперь поговорим о том, как исправить ошибку 500.Вернемся к популярным причинам этой проблемы и рассмотрим наиболее эффективные способы решения.

Ошибки в файле .htaccess

У этого файла довольно строгий синтаксис, поэтому неверно написанные директивы (команды) могут привести к ошибке. Попробуйте поочередно удалить команды, добавленные последними, и проверьте работу сайта.
Также найти проблемную директиву можно с помощью логов ошибок (через те же инструменты разработчика в браузере).На ошибку в директиве обычно указывает фраза «Неверная команда» . Информацию о верном написании директивы или способ исправления ошибок в .htaccess вы можете найти в интернете. Не нужно искать, почему сервер выдает ошибку 500, просто введите в поиск название нужной команды или текст ошибки из логов.

Ошибки в скриптах сайта

Скрипт не запускается

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

Не хватает оперативной памяти

Если в логах вы видите ошибку «Допустимый размер памяти», для устранения ошибки 500 стоит оптимизировать работу скрипта. Вы можете воспользоваться специальными расширениями для анализа производительности скрипта или обратиться за помощью к специалисту, который поработает над его оптимизацией.

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

Ошибки в CMS

Если код CMS содержит неверный синтаксис, это может вывести сайт из строя. В таком случае логи сообщат вам об ошибке 500 текстом «Ошибка синтаксического анализа PHP: непредвиденная синтаксическая ошибка».Так происходит, когда некорректно работает плагин (или тема, используемая в CMS, но реже) либо есть ошибки в коде. Ошибка может быть допущена случайно, произойти при обновлении плагина или версии CMS.

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

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

Информацию о других распространенных ошибках вы можете найти в статье «6 наиболее часто используемых ошибок HTTP и способы их устранения».

Удачи!

.