Коды ответов сервера (коды ошибок).

Относительно часто на форуме появляются топики с вопросами типа "Вижу в статистике мудятину 206, что это?" или "Что значит Partial Content в webalizer"e?". Ввиду повышенного интереса к этой теме, предлагается небольшой FAQ о кодах ошибок сервера.

Успешные запросы клиента.

Ответ сервера в диапазоне 200-299 означают, что запрос клиента обработан успешно.

200 OK - все отлично, запрос клиента обработан успешно, ответ сервера содержит затребованные данные.

201 Created (объект создан) - запрос был выполнен и в результате был создан новый ресурс. Новый созданный ресурс может быть вызван по URI (одному или нескольким), возвращенным в объекте ответа; наиболее специфический URL для ресурса отдается в поле заголовка Location. Первоначальный сервер ДОЛЖЕН создать ресурс перед возвратом кода состояния 201. Если действие не может быть выполнено немедленно, сервер должен возвратить ответ с кодом состояния 202 Accepted вместо 201.

202 Accepted (информация принята) - запрос был принят для обработки, но обработка не была завершена. В конечном счете запрос МОЖЕТ быть, а МОЖЕТ и не быть выполнен, поскольку он МОЖЕТ быть отвергнут при фактической обработке. Не имеется никакой возможности вторичной посылки кода состояния от асинхронной операции типа этой. Ответ с кодом состояния 202 преднамеренно уклончив. Цель его состоит в том, чтобы позволить серверу принять запрос для некоторого другого процесса (возможно пакетно-ориентированного процесса, который выполняется только один раз в день) и не требовать при этом, чтобы соединение агента пользователя с сервером сохранялось до завершения процесса. Объекту, возвращенному с этим ответом СЛЕДУЕТ содержать индикатор текущего состояния запроса и либо ссылку на монитор состояния, либо некоторую оценку времени, когда пользователь может ожидать завершения выполнения запроса.

203 Non-Authoritative Information (не авторская информация) - возвращенная в заголовке объекта (entity-header) метаинформация - это не оригинал, доступный на первоначальном сервере, а документ, собранный из локальных копий или копий третьей стороны. Представленный документ может быть как подмножеством оригинальной версии, так и содержать сведения, которые в ней не были представлены. Например, включение локальной аннотирующей информацию о ресурсе может расширить метаинформацию, известную первоначальному серверу. Использование этого кода состояния в ответе не является необходимым, но может применяться тогда, когда код состояния ответа отличен от 200 (OK).

204 No Content (нет содержания) - ответ содержит код состояния и заголовок, но тело содержимого отсутствует. При получении этого ответа броузер не должен обновлять свой документ. Обработчик чувствительных областей изображений может возвращать этот код, когда пользователь от не хуй делать щелкает на бесполезных или пустых участках изображения.

205 Reset Content (очистка ответа) - сервер выполнил запрос, и агенту пользователя следует отменить просмотр документа, который инициировал запрос. Этот ответ предназначен прежде всего для того, чтобы позволить ввод данных, осуществляемый пользователем, с последующей очисткой формы, в которой сделан ввод, так, чтобы пользователь мог легко инициировать следующее действие ввода. Ответ не должен содержать объект.

206 Partial Content (частичное содержимое) - сервер возвращает лишь часть данных затребованного объема. Используется в ответе на запрос с указанием заголовка Range. Сервер должен указать диапазон, включенный в ответ, в заголовке Content-Range. Вообщем выкачивают ваши порники всякими там флешгетами и прочими менеджерами закачки.

Переадресация

Код ответа сервера в диапазоне 300-399 означает, что запрос не выполнен и клиенту нужно предпринять некоторые действия для удовлетворения запроса.

300 Multiple Choices (несколько вариантов на выбор) - затребованный URL обозначает более одного ресурса. Например, URL может обозначать документ, переведенный на несколько языков. В теле содержимого, возвращенном сервером, может находиться перечень более конкретных данных о том, как выбрать ресурс правильно.

301 Moved Permanently (ресурс перемещен на постоянной основе) - затребованный URL уже не используется сервером, и указанная в запросе операция не выполнена. Новое местонахождение затребованного документа указывается в заголовке Location. Во всех последующих запросах данного документа следует указывать новый URL.

302 Moved Temporarily (ресурс временно перемещен) - затребованный URL перемешен, но лишь временно. Заголовок Location указывает на новое местонахождение. Сразу же после получения этого кода состояния клиент должен разрешить запрос при помощи нового URL, но во всех последующих запросах необходимо пользоваться старым URL.

303 See Other (смотрите другой ресурс) - затребованный URL можно найти по другому URL (указанному в заголовке Location). Его следует выбрать методом GET по данному ресурсу. Этот метод существует прежде всего для того, чтобы производить вывод данных активизированного методом POST сценария, используя перенаправление агента пользователя на указанный ресурс. Новый URI - это не ссылка, заменяющая первоначально запрошенный ресурс. Ответ с кодом состояния 303 не кэшируем, но ответ на второй (переназначенный) запрос может быть кэширован. Если новый URI - это расположение, то ответу следует содержать URL в поле Location. Если метод запроса был не HEAD, то объекту ответа следует содержать короткое гипертекстовое примечание с гиперссылкой на новый (или новые) URI.

304 Not Modified (не изменился) - это код ответа на заголовок lf-Modified-Since, если URL не изменялся с указанной даты. Тело содержимого не посылается, и клиент должен использовать свою локальную копию.

305 Use Proxy (используйте прокси-сервер) - oбращение к запрошенному ресурсу должно производиться через прокси-сервер, указанный в поле Location. В поле Location указан URL прокси-сервера. Ожидается, что получатель повторит запрос через прокси-сервер.

Неполные запросы клиента

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

400 - Bad Request (некорректный запрос) - запрос не может быть понят сервером из-за malformed синтаксиса. Клиенту не следует повторять запрос без модификаций.

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

402 Payment Required (требуется оплата) - Этот код зарезервирован для будущего использования. В данный момент в HTTP еще не реализован.

403 Forbidden (доступ запрещен) - запрос отклонен по той причине, что сервер не хочет (или не имеет возможности) ответить клиенту.

404 Not Found (ресурс не найден) - документ по указанному URL не существует, сервер не нашел ничего, соответствующего данному запрашиваемому URI (Request-URI). Никак не сообщается является ли такое положение временным или постоянным. Если сервер не желает делать данную информацию доступной клиенту, то вместо этого кода состояния может использоваться код состояния 403 (Запрещено, Forbidden). Код состояния 410 (Удален, Gone) следует использовать, если сервер знает через некоторый внутренне конфигурируемый механизм, что старый ресурс более недоступен, но не знает нового адреса для пересылки.

405 Method Not Allowed (недопустимый метод) - этот код выдается с заголовком Allow и показывает, что метод, используемый клиентом, для данного URL не поддерживается.

406 Not Acceptable (неприемлемый запрос) - ресурс, идентифицируемый запросом, имеет возможности генерации только таких объектов ответа, которые имеют характеристики содержимого (content characteristics), не согласующиеся с заголовками приема (accept headers), представленными в запросе.

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

408 Request Timeout (время обработки запроса истекло) - клиент не произвел запрос в течение времени, которое сервер готов ждать. Клиент может повторить запрос без модификаций позже.

409 Conflict (конфликт) - запрос не был выполнен из-за конфликта с текущим состоянием ресурса. Этот код позволяется только в ситуациях, когда ожидается, что пользователь может решить конфликт и повторно передать запрос. Телу ответа следует содержать достаточное количество информации для пользователя, чтобы он мог распознать источник конфликта. В идеале, объект ответа должен включать достаточно информации для пользователя или агента пользователя для решения проблемы; однако это может не быть возможно, да и не требуется. Конфликты, наиболее вероятно, будут возникать в ответ на запрос PUT. Если используется версификация, и объект, который должен быть помещен, включает изменения ресурса, которые находятся в противоречии со сделанными раньше каким-либо запросом (третьей стороны), сервер может использовать ответ с кодом состояния 409, чтобы показать, что он не может выполнить запрос. В этом случае, объекту ответа следует содержать список отличий двух версий в формате, определенном полем заголовка ответа Content-Type.

410 Gone (ресурса больше нет) - данный код показывает, что затребованный URL больше не существует и навсегда удален с сервера.

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

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

413 Request Entity Too Large (запрашиваемый элемент слишком велик) - сервер не будет обрабатывать запрос, потому что его тело слишком велико.

414 Request-URI Too Long (идентификатор ресурса в запросе слишком длинный) - сервер не будет обрабатывать запрос, потому что его URL слишком длинный.

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

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

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

500 Internal Server Error (внутренняя ошибка сервера) - при обработке запроса на сервере один из его компонентов (например, CGI-программа) выдал аварийный отказ или столкнулся с ошибкой конфигурации.

501 Not Implemented (функция не реализована) - клиент запросил выполнение действия, которое сервер выполнить не может, сервер не поддерживает функциональные возможности, требуемые для выполнения запроса. Этот ответ соответствует состоянию, когда сервер не распознает метод запроса и не способен обеспечитиь его для любого ресурса.

502 Bad Gateway (дефект шлюза) - сервер, действуя в качестве шлюза или прокси-сервера, получил недопустимый ответ от следующего сервера в цепочке запросов, к которому обратился при попытке выполнить запрос.

503 Service Unavailable (служба недоступна) - данный код означает, что данная служба временно недоступна, но в будущем доступ к ней будет восстановлен. Если сервер знает, когда это произойдет, может быть также выдан заголовок Retry-After.

504 Gateway Timeout (время прохождения через шлюз истекло) - этот ответ похож на 408 (Request Time-out) , за исключением того, что шлюз или уполномоченный сервер превысил лимит времени.

505 HTTP Version Not Supported (неподдерживаемая версия HTTP) - сервер не поддерживает версию протокола HTTP, использованную в запросе.

Для составления использовались материалы со все-различных сайтов (rtfm.vn.ua, w3.org и пр.)

33

Это, как я называю обслуживание с.NET:

Var requestedURL = "https://accounts.google.com/o/oauth2/token?code=" + code + "&client_id=" + client_id + "&client_secret=" + client_secret + "&redirect_uri=" + redirect_uri + "&grant_type=authorization_code"; HttpWebRequest authRequest = (HttpWebRequest)WebRequest.Create(requestedURL); authRequest.ContentType = "application/x-www-form-urlencoded"; authRequest.Method = "POST"; WebResponse authResponseTwitter = authRequest.GetResponse();

Но когда этот метод вызывается, я получаю:

Exception Details: System.Net.WebException: The remote server returned an error: (411) Length Required.

что я должен делать?

  • 6 ответов
  • Сортировка:

    Активность

54

Когда вы используете метод HttpWebRequest и POST, вам необходимо установить контент (или тело, если хотите) через RequestStream. Но, согласно вашему коду, использования authRequest.Method = "GET" должно быть достаточно.

В случае, если вам интересно о формате POST, вот что вы должны сделать:

ASCIIEncoding encoder = new ASCIIEncoding(); byte data = encoder.GetBytes(serializedObject); // a json object, or xml, whatever... HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest; request.Method = "POST"; request.ContentType = "application/json"; request.ContentLength = data.Length; request.Expect = "application/json"; request.GetRequestStream().Write(data, 0, data.Length); HttpWebResponse response = request.GetResponse() as HttpWebResponse;

8

Когда вы делаете POST HttpWebRequest, необходимо указать длину данных, которые вы отправляете, что-то вроде:

String data = "something you need to send" byte postBytes = Encoding.ASCII.GetBytes(data); request.ContentLength = postBytes.Length;

если вы не отправлять какие-либо данные, просто установите его в 0, что означает, что вы просто нужно добавить в код строку:

Request.ContentLength = 0;

Обычно, если вы не отправлять какие-либо данные, они выбрали метод GET вместо мудрее, как вы можете видеть в HTTP RFC

1

Хотя обычно можно было бы ожидать, посылаемые данные с POST, было бы неправильно и плохая практика, чтобы использовать GET, когда вы * изменение * данных на сервере. Запрос POST должен избегать прокси-кэшей между клиентом и сервером. GET в порядке, если данные извлекаются с сервера без каких-либо изменений на сервере в результате запроса. - Michael 04 апр. 16 2016-04-04 04:57:58

1

System.Net.WebException: The remote server returned an error: (411) Length Required.

This is a pretty common issue that comes up when trying to make call a REST based API method through POST. Luckily, there is a simple fix for this one.

This is the code I was using to call the Windows Azure Management API. This particular API call requires the request method to be set as POST, however there is no information that needs to be sent to the server.

var request = (HttpWebRequest) HttpWebRequest.Create(requestUri); request.Headers.Add("x-ms-version", "2012-08-01"); request.Method = "POST"; request.ContentType = "application/xml";

To fix this error, add an explicit content length to your request before making the API call.

request.ContentLength = 0;

2

var requestedURL = "https://accounts.google.com/o/oauth2/token?code=" + code + "&client_id=" + client_id + "&client_secret=" + client_secret + "&redirect_uri=" + redirect_uri + "&grant_type=authorization_code"; HttpWebRequest authRequest = (HttpWebRequest)WebRequest.Create(requestedURL); authRequest.ContentType = "application/x-www-form-urlencoded"; authRequest.Method = "POST"; //Set content length to 0 authRequest.ContentLength = 0; WebResponse authResponseTwitter = authRequest.GetResponse();

Свойство ContentLength содержит значение для отправки в качестве Content-length HTTP заголовка с запросом.

Любое значение, отличное от -1 в ContentLength собственности указывает на то, что данные запроса загрузки и что только методы, которые загружать данные могут быть установлены в свойстве метода.

После того, как свойство ContentLength устанавливается в значение, то число байтов должны быть записаны в поток запроса, который возвращается посредством вызова метода GetRequestStream или как BeginGetRequestStream и EndGetRequestStream методы.

для более подробной информации нажмите

Коды ошибок посылаются WEB-сервером агенту пользователя для определения его дальнейшего поведения.

Ошибки ВЕБ-сервера делятся на диапазоны:

100-199 Информационный . Сообщает агенту что, запрос агента принят и обрабатывается
200-299 Запрос агента обработан успешно , сервер отправил клиенту запрашиваемый документ
300-399 Запрос агента изменен и агенту нужно предпринять некоторые действия для удовлетворения измененного запроса.
400-499 Проблемы при попытке выполнить запрос .
500-599 Ошибки сервера

В диапазоне определены лишь несколько кодов, хотя для сервера при необходимости могут определяться собственные коды. При получении кода, который не может распознать, агент интерпретирует его в соответствии с диапазоном, к которому этот код принадлежит. Коды в диапазонах 100-199, 200-299 и 300-399 большинство Web-броузеров обрабатывают без извещения пользователя, а некоторые коды ошибок из диапазонов 400-499, 500-599 отображаются для пользователя.

Код ошибки http сервера Краткое описание
ошибка 100 Continue Начальная часть запроса принята, и клиент может продолжать передачу запроса
ошибка 101 Switching Protocols Сервер выполняет требование клиента и переключает протоколы в соответствии с указанием, данным в поле заголовка Upgrade.
ошибка 200 OK Запрос клиента обработан успешно и ответ сервера содержит затребованные данные
ошибка 201 Created Этот код состояния используется в случае создания нового URI. Вместе с этим кодом результата сервер выдает заголовок Location, который содержит информацию о том, куда были помещены новые данные.
ошибка 202 Accepted Запрос принят, но обрабатывается не сразу. В теле содержимого ответа сервера может быть дана дополнительная информация о данной транзакции. Гарантии того, что сервер в конечном итоге удовлетворит запрос, нет, даже несмотря на то, что на момент приема запрос выглядел допустимым.
ошибка 203 Non-Authoritative Information Информация в заголовке содержимого взята из локальной копии или у третьей стороны, а не с исходного сервера.
ошибка 204 No Content Ответ содержит код состояния и заголовок, но тело содержимого отсутствует. При получении этого ответа броузер не должен обновлять свой документ. Обработчик чувствительных областей изображений может возвращать этот код, когда пользователь щелкает на бесполезных или пустых участках изображения.
ошибка 205 Reset Content Броузер должен очистить форму, используемую в данной транзакции, для дополнительных входных данных. Полезен для CGI-приложений, требующих ввода данных.
ошибка 206 Partial Content Сервер возвращает лишь часть данных затребованного объема. Используется в ответе на запрос с указанием заголовка Range. Сервер должен указать диапазон, включенный в ответ, в заголовке Content-Range.
ошибка 300 Multiple Choices Затребованный URI обозначает более одного ресурса. Например, URI может обозначать документ, переведенный на несколько языков. В теле содержимого, возвращенном сервером, может находиться перечень более конкретных данных о том, как выбрать ресурс правильно
ошибка 301 Moved Permanently Затребованный URI уже не используется сервером, и указанная в запросе операция не выполнена. Новое местонахождение затребованного документа указывается в заголовке Location. Во всех последующих запросах данного документа следует указывать новый URI.
ошибка 302 Moved Temporarily Затребованный URI перемешен, но лишь временно. Заголовок Location указывает на новое местонахождение. Сразу же после получения этого кода состояния клиент должен разрешить запрос при помощи нового URI, но во всех последующих запросах необходимо пользоваться старым URI.
ошибка 303 See Other Затребованный URI можно найти по другому URI, указанному в заголовке Location. Его следует выбрать методом GET по данному ресурсу.
ошибка 304 Not Modified Это код ответа на заголовок lf-Modified-Since, если URI не изменялся с указанной даты. Тело содержимого не посылается, и клиент должен использовать свою локальную копию.
ошибка 305 Use Proxy Доступ к затребованному URI должен осуществляться через proxy-сервер, указанный в заголовке Location.
ошибка 400 Bad Request Означает, что сервер обнаружил в запросе клиента синтаксическую ошибку.
ошибка 401 Unauthorized Этот код результата, передаваемый с заголовком WWW-Authenticate, показывает, что пославший запрос пользователь не имеет необходимых полномочий и что при повторении запроса с указанием данного URI пользователь должен такие полномочия предоставить.
ошибка 402 Payment Required Этот код в HTTP еще не реализован.
ошибка 403 Forbidden Запрос отклонен по той причине, что сервер не хочет (или не имеет возможности) ответить клиенту. Возможные причины ошибки:
  • Вы пытаетесь запустить CGI-скрипт, расположенный вне CGI-директории (например, в директории документов сервера www). Можно запускать скрипты из www-директории только если в ней есть файл.htaccess (с точкой в начале) следующего содержания: Options +ExecCGI
  • Возможно, вы пытаетесь открыть картинку или статический HTML-файл, расположенный в CGI-директории. Этого делать нельзя. Все рисунки (а также другие файлы, за исключениям скриптов) должны находиться в www-директории.
  • Если вы ожидаете получить листинг каталога, но выводится эта ошибка, вероятно, для данной директории выдача листинга запрещена (например, это CGI-папка). Для разрешения листинга в нужной директории должен находиться файл.htaccess следующего содержания: Options +Indexes
ошибка 404 Not Found Документ по указанному URL не существует. Возможно, такой файл удален, а возможно, вы ошиблись при наборе URL в браузере или пошли по неверной ссылке.
ошибка 405 Method Not Allowed Этот код выдается с заголовком Allow и показывает, что метод, используемый клиентом, для данного URL не поддерживается. Возможно, вы пытаетесь отправить данные POST-форму на страницу, которая не является скриптом (например, на SHTML-страницу). Проверьте путь в атрибуте action тэга, инициировавшего данный запрос. Проверьте также, не пуст ли этот атрибут (и задан ли).
ошибка 406 Not Acceptable Ресурс, указанный клиентом по данному URL, существует, но не в том формате, который нужен клиенту. Вместе с этим кодом сервер выдает заголовки Content-Language, Content-Encoding и Content-Type.
ошибка 407 Proxy Authentication Required Proxy-сервер должен санкционировать запрос перед тем, как пересылать его. Используется с заголовком Proxy-Authenticate.
ошибка 408 Request Time-out Этот код ответа означает, что клиент не передал полный запрос в течение некоторого установленного промежутка времени (который обычно задается в конфигурации сервера) и сервер разрывает сетевое соединение.
ошибка 409 Conflict Данный запрос конфликтует с другим запросом или с конфигурацией сервера. Информацию о конфликте следует возвратить в информационной части ответа.
ошибка 410 Gone Данный код показывает, что затребованный URL больше не существует и навсегда удален с сервера.
ошибка 411 Length Required Сервер отказывается принимать запрос без определенного Content-Length.
ошибка 412 Precondition Failed Результат вычисления условия, заданного в запросе одним или несколькими заголовками if... , представляет собой "ложь".
ошибка 413 Request Entity Too Large Сервер не будет обрабатывать запрос, потому что его содержание слишком велико.
ошибка 414 Request URL Too Long Сервер не будет обрабатывать запрос, потому что его URL слишком длинный.
ошибка 415 Unsupported Media Type Сервер не будет обрабатывать запрос, потому что его тело имеет неподдерживаемый формат
ошибка 416 Requested Range Not Satisfiable Сервер сообщает - форма запроса (требуемый диапазон) не выполнима
ошибка 417 Expectation Failed Сервер сообщает - время ожидания истекло.
ошибка 500 Internal Server Error При обработке запроса на сервере один из его компонентов (например, CGI-программа) выдал аварийный отказ или столкнулся с ошибкой конфигурации. Причиной этого могут быть неправильные инструкции в файле.htaccess, неправильные атрибуты на CGI-скрипте (должны быть 755). Так же, это может быть ошибка в скрипте. Точную причину можно установить, просматривая error.log.
ошибка 501 Not Implemented Клиент запросил выполнение действия, которое сервер выполнить не может.
ошибка 502 Bad Gateway Сервер (или proxy-сервер) получил недопустимые ответы другого сервера (или proxy-сервера)
ошибка 503 Service Unavailable Данный код означает, что данная служба временно недоступна, но в будущем доступ к ней будет восстановлен. Если сервер знает, когда это произойдет, может быть также выдан заголовок Retry-After.
ошибка 504 Gateway Time-out Этот ответ похож на 408 (Request Time-out), за исключением того, что шлюз или уполномоченный сервер превысил лимит времени.
ошибка 505 HTTP Version not supported Версия HTTP не поддерживается данным сервером

Мы часто говорим, ошибка 404, ошибка 403, 301, ошибка 503 и друг друга отлично понимаем. И примерно понимаем, что нужно делать в данной ситуации. Данная статья направлена на тех, кто только начинает во всё этом разбираться, чтобы мы все могли говорить на одном языке.

Что такое код ответа сервера

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

Именно по кодам ответа ищутся на сайте . Это самый простой и надежный способ.

Какие бывают коды ответа

Коды ответа делятся по числовым значениям

  • 1xx — Информационный ответ
  • 2xx — Успешная обработка запроса
  • 3xx — Переадресация (редиректы постоянные и временные)
  • 4xx — Ошибки выполнения запроса
  • 5xx — Ошибки сервера

Информационные ответы (1xx):

  • 100 Continue
    Часть запроса принята, можно отправлять следующую часть запроса. Часто даже не выделяется отдельно. Код говорит серверу — ОК, работаем дальше, всё идет по плану!
  • 101 Switching Protocols
    Сервер производит переключение протоколов в соответствии с заголовком Upgrade. Пользователя это никоим боком не касается. Про этот код ответа можете забыть 🙂

Успешная обработка запроса (2xx):

  • 200 OK
    Запрос обработан успешно. Самый главный код. Именно он дает команду браузеру производить загрузку страницы. Говорит, что всё хорошо с запросом, он успешно обработан.
  • 201 Created
    Данный код используется когда происходит создание нового URI. Вместе с кодом сервер посылает заголовок Location с адресом нового URI. Например при поиске или фильтрации может возвращаться этот код.
  • 202 Accepted
    Запрос принят и обрабатывается. В теле ответа как правило содержится дополнительная информация.
  • 203 Non-Authoritative Information
    Ответ означает, что информация получена из ненадежного источника (например, с другого сервера). Иногда этим пользуются злоумышленники, поэтому при наличии 203 кода следует проверить сайт на вирусы.
  • 204 No Content
    Запрос обработан, но в ответ ничего не возвращается. Как правило используется если в ответ на запрос не нужно обновлять содержимое документа. Чисто технический момент, на него не обращайте внимания
  • 205 Reset Content
    Означает, что содержимое документа должно быть сброшено в начальное состояние. Обычно используется при очистке форм ввода данных. Похож на 204 код, но тут нужно перезагружать документ.
  • 206 Partial Content
    При данном ответе возвращается лишь часть данных. Обычно используется если клиент запросил часть данных с использованием заголовка Range. Тесно связан с процессом кэширования.

Переадресация (3xx):

  • 300 Multiple Choices
    Означает, что существует несколько вариантов запрашиваемой страницы. Например, сайт, переведенный на несколько языков и пользователю предложены варианты выбора. В теле содержимого могут возвращаться данные для выбора правильного ресурса.
  • 301 Moved Permanently
    Затребованный URI уже не используется сервером, и указанная в запросе операция не выполнена. Новое местонахождение затребованного документа указывается в заголовке Location файла.htaccess. Во всех последующих запросах данного документа следует указывать новый URI. Очень важный код ответа, с помощью которого можно избавиться от и сменить адреса страниц на новые без потери позиций и веса.
  • 302 Moved Temporarily
    Затребованный URI перемешен, но лишь временно. Заголовок Location файла.htaccess указывает на новое местонахождение. После получения этого кода ответа клиент получает документ по новому адресу, а во всех последующих запросах — по старому.
  • 303 See Other
    Затребованный URI можно найти по другому адресу, указанному в заголовке Location файла.htaccess. Его следует выбрать методом GET по данному ресурсу.
  • 304 Not Modified
    Данный код ответа возвращается если был запрос lf-Modified-Since, и документ не изменялся с указанной даты. Тело документа не посылается, а клиент должен использовать локальную версию документа.
  • 305 Use Proxy
    Доступ к документу должен осуществляться через proxy-сервер, адрес которого указан в Location.

Ошибки выполнения запроса (4xx):

  • 400 Bad Request
    Любая синтаксическая ошибка в строке запроса.
  • 401 Unauthorized
    Этот ответ, передаваемый с заголовком WWW-Authenticate, означает, что пользователь не имеет достаточных прав для просмотра документа. Как правило эта ошибка появляется, если для просмотра документа нужна авторизация пользователя, а пользователь не авторизован, например, через связку htaccess-htpasswd.
  • 402 Payment Required
    Этот код ответа еще не реализован, но название говорит само за себя. Используется несколькими популярными сервисами (в частности, youtube), чтобы защититься от спама с конкретного IP адреса.
  • 403 Forbidden
    Запрос клиента отклонен по какой-либо причине. Чаще всего, когда страница находится в закрытом разделе с ограниченным доступом.
  • 404 Not Found
    . Наверное это самая распространенная ошибка сервера. Возникает, когда документ был удален или допущена ошибка в адресе документа.
  • 405 Method Not Allowed
    Означает, что метод, используемый клиентом, не поддерживается. Например, при попытке отправить POST — данные документу, который не является скриптом.
  • 406 Not Acceptable
    Ресурс существует, но в другом формате, например, может различаться язык документа. Вместе с этим кодом сервер возвращает заголовки Content-Language, Content-Encoding и Content-Type.
  • 407 Proxy Authentication Required
    Proxy-сервер должен санкционировать запрос перед тем, как пересылать его. Используется с заголовком Proxy-Authenticate.
  • 408 Request Time-out
    Сервер разорвал соединение из-за превышенного таймаута. Этот код ответа означает, что клиент не передал полный запрос в течение некоторого установленного промежутка времени (который задается в конфигурации сервера) и сервер разрывает сетевое соединение. Как правило это происходит при плохом качестве связи, при передачи больших объемов данных серверу, при очень низкой .
  • 409 Conflict
    Данный запрос конфликтует с другим запросом или с конфигурацией сервера. Информация о конфликте обычно возвращается в информационной части ответа. Можно почитать и быстро устранить.
  • 410 Gone
    Запрошеный документ навсегда удален с сервера.
  • 411 Length Required
    Пропущено необходимое поле в заголовке запроса Content-Length.
  • 412 Precondition Failed
    Не выполнено условие, указанное в заголовке.
  • 413 Request Entity Too Large
    Слишком большой запрос.
  • 414 Request-URI Too Long
    Слишком длинный URL в запросе. Часто возникает при GET фильтрации данных в многоуровневых фильтрах. Поэтому на этапе разработки сайта следует подумать, а может лучше фильтровать данные через POST, генерируя потом уникальную . Ведь данные в POST могут передаваться в огромном количестве (зависит от параметра в php.ini)
  • 415 Unsupported Media Type
    Сервер не поддерживает указанный формат данных. Не поддерживает и не собирается. Всё, точка.
  • 416 Requested Range Not Satisfiable
    Сервер сообщает — форма запроса (требуемый диапазон) не выполнима.
  • 417 Expectation Failed
    Время ожидания истекло.

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

  • 500 Internal Server Error
    Внутренняя ошибка сервера. Ошибка выполнения скрипта, ошибка в файле.htaccess и т.д. Легко обнаруживается в логах веб-сервера. Исправляется программистами 🙂
  • 501 Not Implemented
    Недопустимое действие.
  • 502 Bad Gateway
    Недопустимый ответ с другого ресурса.
  • 503 Service Unavailable
    Данный код означает, что указанный сервис временно недоступен, если известно время восстановления работы, то может быть передан заголовок Retry-After. Часто возникает из-за перегрузок сервера на слабых хостингах.
  • 504 Gateway Time-out
    Превышен таймаут ожидания от другого ресурса.
  • 505 HTTP Version not supported
    Данная версия протокола HTTP не поддерживается сервером.

Что делать при возникновении ошибок

Некоторые ошибки являются временными (например, 503), а некоторые делают работу сайта невозможной.

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

Зачем нужен мониторинг сайтов?

Вы можете проверять доступность любого сайта через определённые настраиваемые периоды времени. Результаты проверки будут отправляться на указанный e-mail и по SMS. Помимо всего прочего, в платной версии вы сможете контролировать позицию вашего сайта в поисковой выдаче (Топ-10) по определённому ключевому запросу.
Статистика мониторинга

Как заказать Мониторинг сайтов?

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

Чтобы заказать платную версию услуги:

  1. 1 Авторизуйтесь на сайте сайт и перейдите в раздел .
  2. 2 На открывшейся странице нажмите Заказать
  3. 4

    Опционально: подключите дополнительный пакет SMS-уведомлений.

    Обратите внимание! Пакет дополнительных SMS-уведомлений не удаляется и средства за него не возвращаются.

  4. 5 Нажмите Заказать .
  5. 6 Оплатите выставленный счёт .

Готово! Услуга «Мониторинг сайта» будет заказана.

Преимущества платной версии Мониторинга сайтов

SMS-уведомления SMS-уведомления на номер мобильного телефона, активированный в Личном кабинете на сайте сайт.

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

Приобретение дополнительныx пакетов для SMS-уведомлений Возможность приобрести дополнительные пакеты для SMS-уведомлений и регулировать количество необходимых вам мониторов.

Cокращённый интервал проверки доступности сайта Возможность сократить интервал проверки доступности сайта с одного часа до минуты.

Как перейти с бесплатной версии мониторинга на платную?

Для того чтобы перейти с бесплатной версии на платную:

  1. 1 Авторизуйтесь на сайте и перейдите к .
  2. 2 Кликните по названию услуги и на открывшейся странице нажмите Изменить тариф .
  3. 3 Выберите количество мониторов и срок заказа услуги.
  4. 4 Нажмите Заказать .

Как продлить Мониторинг сайтов?

Продление услуги по тарифу «Пробный» невозможно. Для того чтобы продлить услугу Мониторинг сайтов по тарифу «Коммерческий», выполните следующее:


После продления приостановленной услуги вам необходимо самостоятельно включить мониторы в настройках услуги.

Настройка Мониторинга сайтов

Использование мониторов

Монитор — средство обращения к определённому сайту по заданным настройкам. По умолчанию в рамках услуги «Система мониторинга сайтов» предоставляется пять мониторов. Для того чтобы добавить новый монитор, в панели управления услугой выберите Добавить монитор . На открывшейся странице в поле «Название монитора» укажите удобный для вас идентификатор данного монитора. В поле «URL сайта» добавьте адрес интересующего вас сайта.

  • проверка доступности сайта;
  • проверка наличия заданной строки на проверяемой странице;
  • отслеживание позиции сайта в поисковых системах.

Вы можете установить свои настройки для каждого монитора.

Проверка доступности сайта

Проверка доступности сайта представляет собой GET-запрос по URL проверяемого сайта. Если возвращается код ошибки, монитор отправляет уведомление на e-mail и SMS (при подключенных SMS-уведомлениях и наличии неизрасходованных SMS). Уведомления отправляются, как только сайт стал недоступен. Затем, если он в течение пяти часов по-прежнему будет недоступен, вы получите новое уведомление. Как только сайт снова станет доступен, вам на e-mail или по SMS придёт соответствующее сообщение.

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

Проверка наличия заданной строки на проверяемой странице

Данный тип проверки показывает наличие в исходном коде запрашиваемой строки, которая вводится в текстовом поле «Искомая строка». Исходный код страницы сайта можно посмотреть, нажав на ней комбинацию клавиш «Ctrl» + «U» . Уведомления отправляются в тот момент, когда система не находит строку на сайте.

Период тестирования

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

Для монитора «Отслеживание позиции сайта в поисковых системах» период тестирования изменить невозможно.

Дополнительные настройки

Установленная галочка «Плановые отключения» отключает проверку доступности интересующих вас сайтов на определённые дни, которые вы можете выбрать в виджете календаря. Это может понадобиться, например, в случае работ на сервере, DDoS-атак и пр.

В разделе «Уведомления» вы можете подключить или отключить уведомления по электронной почте, добавить новый e-mail для оповещений, а также SMS-уведомления о недоступности сайтов для конкретного монитора.

К настройкам монитора всегда можно вернуться из панели управления мониторами в пункте «Настройки». По окончании настройки необходимо нажать Создать монитор .

Удаление и приостановка работы монитора

Для того чтобы отключить ранее созданный монитор, переведите переключатель в разделе «Состояние» в положение «OFF». После этого вы получите сообщение «Сбор данных приостановлен» .

Чтобы удалить ранее созданный монитор в Личном кабинете, в разделе , кликните по услуге Мониторинг сайтов по тарифу «Коммерческий» и перейдите в панель управления услугой. На мониторе, который хотите удалить, нажмите Удалить .

Статистика услуги Мониторинг сайтов

Сводная статистика

В данном отчёте можно посмотреть статистику работоспособности сайта за периоды от одного дня до года. Также вы можете посмотреть отчёт о работоспособности сайта за определённый период, нажав на Показать за период и выбрав даты запрашиваемого периода в иконке календаря. Отчёты можно сохранять в pdf-файл с помощью Сохранить в файл . Значение Uptime указывает на общее время доступности сайта за запрашиваемый период. Значение «Отказов» указывает на общее время недоступности. Поля Total Uptime и «Отказ» предназначены для оценки доступности сайтов с момента заказа услуги по настоящее время.

Подробный отчёт

В данном отчёте можно выбрать географическое местоположение сервера, с которого производилась проверка, результат проверки «ОК» или «Отказ». Поле «Размер» говорит о размере полученных от сервера данных. Поле «Время ответа» говорит о времени ответа на запрос от сервера.

Экспресс-проверка

Экспресс-проверка — это проверка состояния доступности интересующего вас сайта на текущий момент времени. Результаты проверки доступны в разделе «Посмотреть отчёты». Для каждого монитора, согласно тарифному плану, предоставляется три экспресс-проверки в сутки.
Экспресс-проверка

Для монитора «Отслеживание позиции в поисковых системах» данный тип проверки не предусмотрен, поскольку позиция проверяется один раз в сутки и время проверки не фиксировано.

Сводная статистика монитора «Отслеживание позиции в поисковых системах»

В сводной статистике монитора «Отслеживание в поисковых системах» отображается график изменения позиций вашего сайта в поисковой выдаче. Зелёный столбец графика означает, что позиция сайта в поисковой системе выросла, красный — упала. Серый столбец на графике означает, что сайт находится не в Топ-10 поисковой выдачи. Вы можете просмотреть график и отчёты за определённый период времени: неделю, месяц, год. В таблице отображается информация о дате проверки, поисковой системе, позиции и регионе проверки (для поисковой системы «Яндекс»). Позиция сайта в течение дня может изменяться несколько раз в день.

У вас также есть возможность сохранять отчёты в pdf-файл для дальнейшего анализа.

SMS-уведомления для Мониторинга сайтов

По умолчанию на платном тарифе услуги «Система мониторинга сайтов» доступно 50 SMS-уведомлений, но в процессе заказа вы можете установить галочку «Пакет дополнительных SMS-сообщений» и в выпадающем меню выбрать количество SMS в пакете. SMS-уведомления подключаются/отключаются в настройках создаваемого вами монитора через чекбокс «Получать SMS-уведомления».

По умолчанию используется номер телефона, активированный в Личном кабинете.

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

Чтобы подключить дополнительные уведомления:

  1. 1 Авторизуйтесь на сайте сайт и перейдите к списку заказанных услуг.
  2. 2 Кликните по услуге Мониторинг сайтов по тарифу «Коммерческий».
  3. 3 нажмите Пакет дополнительных SMS .
  4. 4 В открывшемся всплывающем окне выберите количество SMS в пакете и нажмите Заказать .
  5. 5 Оплатите выставленный счёт .

Готово! Дополнительные SMS-уведомления будут подключены.

Коды ошибок в сервисе Мониторинг сайтов

    «400 Bad Request» . Ошибка означает, что сервер обнаружил в запросе клиента синтаксическую ошибку;

    «401 Unauthorized» . Этот код результата, передаваемый с заголовком WWW-Authenticate, показывает, что пославший запрос пользователь не имеет необходимых полномочий, и что при повторении запроса с указанием данного URL пользователь должен такие полномочия предоставить;

    «402 HTTP Payment Required» . Этот код в HTTP еще не реализован;



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