Страница 1 из 11
Модератор форума: JonMagon 
Сообщество uCoz » Вебмастеру » JavaScript, Flash и прочие технологии » Ошибки связи с сервером: HTTP 500 и другие (Сервер временно не может отобразить запрошенную страницу)
Ошибки связи с сервером: HTTP 500 и другие
charista
Сообщений: 6
Репутация: 7
Уровень замечаний:

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

403 Access allowed only for registered users

Клиент узнаёт по коду ответа о результатах его запроса и определяет, какие действия ему предпринимать дальше. Набор кодов состояния является стандартом, и все они описаны в соответствующих документах RFC. Введение новых кодов должно производится только после согласования с IETF. Клиент может не знать все коды состояния, но он обязан отреагировать в соответствии с классом кода.



В настоящее время выделено пять классов кодов состояния:
  • 1xx: Informational (русск. Информационный) — запрос получен и понят, а обработка продолжается.
  • 2xx: Success (русск. Успешно) — запрос был успешно получен, понят и обработан.
  • 3xx: Redirection (русск. Перенаправление) — для выполнения запроса должны быть предприняты дальнейшие действия.
  • 4xx: Client Error (русск. Ошибка клиента) — запрос имеет плохой синтаксис или не может быть выполнен.
  • 5xx: Server Error (русск. Ошибка сервера) — сервер не в состоянии выполнить допустимый запрос, или не поддерживает запросы указанного типа.



Ниже представлены коды ответа из реестра кодов состояния IANA (Информация предоставлена Википедией)

Сообщение отредактировал charista - Вторник, 17 Фев 2009, 21:00:48
charista
Сообщений: 6
Репутация: 7
Уровень замечаний:

Сообщение # 2 | 23:28:56
1xx: Informational

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

Quote
100 Continue (русск. Продолжать) Появился в HTTP/1.1. - Сервер удовлетворён начальными сведениями о запросе. Клиент может продолжать пересылать заголовки.


Quote
101 Switching Protocols (русск. Переключение протоколов) Появился в HTTP/1.1. - Сервер предлагает перейти на более подходящий для указанного ресурса протокол. Список предлагаемых протоколов сервер обязательно указывает в поле заголовка Update. Если клиента это заинтересует, то он посылает новый запрос с указанием другого протокола.


Quote
102 Processing (русск. Идёт обработка) Появился в WebDAV.- Запрос принят, но на его обработку понадобится длительное время. Используется сервером, чтобы клиент не разорвал соединение из-за превышения времени ожидания. Клиент при получении такого ответа должен сбросить таймер и дожидаться следующей команды в обычном режиме.


2xx: Success

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

Quote
200 OK (русск. Хорошо) Появился в HTTP/1.0. - Успешный запрос ресурса. Если клиентом были запрошены какие-либо данные, то они находятся в заголовке и/или теле сообщения.


Quote
201 Created (русск. Создано) Появился в HTTP/1.0. - В результате успешного выполнения запроса был создан новый ресурс. Сервер должен указать его местоположение в заголовке Location. Серверу рекомендуется ещё указывать в заголовке характеристики созданного ресурса (например, в поле Content-Type). Если сервер не уверен, что ресурс действительно будет существовать к моменту получения данного сообщения клиентом, то лучше использовать ответ 202.


Quote
202 Accepted (русск. Принято) Появился в HTTP/1.0. - Запрос был принят на обработку, но обработка не завершена. Клиенту не обязательно дожидаться окончательной передачи сообщения, так как может быть начат очень долгий процесс.


Quote
203 Non-Authoritative Information (русск. Неавторитетная информация) Появился в HTTP/1.1. - Аналогично ответу 200, но в этом случае передаваемая информация была взята не из первичного источника (резервной копии, другого сервера и т. д.) и поэтому может быть неактуальной.


Quote
204 No Content (русск. Нет содержимого) Появился в HTTP/1.0. -Сервер успешно обработал запрос, но в ответе были переданы только заголовки без тела сообщения. Клиент не должен обновлять содержимое документа, но может применить к нему полученные метаданные.


Quote
205 Reset Content (русск. Сбросить содержимое) Появился в HTTP/1.1. - Сервер обязывает клиента сбросить введённые пользователем данные. Тела сообщения сервер при этом не передаёт и документ обновлять не обязательно.


Quote
206 Partial Content (русск. Частичное содержимое) Появился в HTTP/1.1. - Сервер удачно выполнил частичный GET. В заголовке Content-Range сервер указывает байтовые диапазоны содержимого. Особое внимание при работе с подобными ответами следует уделить кэшированию.


Quote
207 Multi-Status (русск. Многостатусный) Появился в WebDAV. - Сервер передаёт результаты выполнения сразу нескольких независимых операций. Они помещаются в само тело сообщения в виде XML-документа с единственным объектом multistatus. Не рекомендуется размещать в этом объекте статусы из серии 1xx из-за бессмысленности и избыточности.


Quote
226 IM Used (русск. IM использовано) Введено в RFC 3229 для дополнения протокола HTTP поддержкой дельта-кодирования. -Заголовок A-IM от клиента был успешно принят и сервер возвращает содержимое с учётом указанных параметров.


3xx: Redirection

Коды статуса класса 3xx сообщают клиенту что для успешного выполнения операции нужно произвести следующий запрос к другому URI. В большинстве случаев новый адрес указывается в поле Location заголовка. Клиент в этом случае должен, как правило, произвести автоматический переход (жарг. редирект).

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

Quote
300 Multiple Choices (русск. Несколько выборов) Появился в HTTP/1.0. - По указанному URI существует несколько вариантов предоставления ресурса по типу MIME, по языку или по другим характеристикам. Сервер передаёт с сообщением список альтернатив, давая возможность сделать выбор клиенту или пользователю.


Quote
301 Moved Permanently (русск. Перемещёно окончательно) Появился в HTTP/1.0. -Запрошенный документ был окончательно перенесен на новый URI, указанный в поле Location заголовка. При запросах не методом HEAD сервер должен передать в теле сообщения гипертекстовое пояснение. При использовании всех методов, кроме GET и POST, предварительно следует уведомить пользователя об изменении ссылки. Не стоит забывать[непонятно], что некоторые клиенты ошибочно меняют метод POST на GET после перехода на другой адрес. Ответ может кэшироваться. Если код состояния 301 получен после запроса GET или HEAD, то клиент должен запросить пользователя перед адресацией.


Quote
302 Found (русск. Найдено) Введено в HTTP/1.0. - Запрошенный документ временно доступен по другому URI, указанному в заголовке в поле Location. При всех методах кроме HEAD сервер должен передать в теле гипертекстовое пояснение. При использовании всех отличных от GET и POST методов предварительно следует уведомить пользователя об изменении URI. При обращении к следующему ресурсу метод POST на GET менять следует как это делают некоторые клиенты.

Код является примером того, как практика не соответствует стандартам. Спецификация HTTP/1.0 требовала от клиента осуществления временной переадресации ("Moved temporarly" в оригинале), но популярные браузеры использовали 303 See other. Поэтому спецификация HTTP/1.1 (RFC 2068) добавила коды состояний 303 и 307, пытаясь избавиться от неоднозначности. Тем не менее, большинство веб-приложений[источник?] по прежнему используют код 302, как если бы он был кодом 303.


Quote
303 See Other (русск. Смотреть другое) Введено в HTTP/1.1. - Документ по запрошенному URI нужно запросить по адресу в поле Location заголовка с использованием метода GET несмотря даже на то, что первый запрашивался методом POST. Если используется не метод HEAD, то серверу следует включить в тело сообщения короткое гипертекстовое описание.


Quote
304 Not Modified (русск. Не изменено) Появился в HTTP/1.0. - Сервер возвращает такой код, если клиент запросил документ методом GET, использовал заголовок If-Modified-Since или If-None-Match и документ не изменился с указанного момента. При этом сообщение сервера не должно содержать тела.


Quote
305 Use Proxy (русск. Использовать прокси) Введено в HTTP/1.1. - Запрос к запрашиваемому ресурсе должен осуществляться через прокси-сервер, URI которого указан в поле Location заголовка. Данный код ответа могут использовать только родные HTTP-сервера (не прокси).


Quote
306 Упомянуто в RFC 2616 (обновление HTTP/1.1). -Использовалось раньше. В настоящий момент зарезервировано.


Quote
307 Temporary Redirect (русск. Временное перенаправление) Введено в RFC 2616 (обновление HTTP/1.1). -Запрашиваемый ресурс короткое время доступен только по другому URI (указывается в поле Location заголовка). Если был послан не метод HEAD, то серверу следует включить в тело сообщения короткое гипертекстовое описание. При использовании всех методов кроме GET и POST предварительно следует уведомить пользователя о временном изменении ссылки.


4xx: Client Error

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

Для облегчения запоминания значений кодов существуют приёмы иллюстративной мнемотехники (например, для диапазона 400 по 417).

Quote
400 Bad Request (русск. Плохой запрос) Появился в HTTP/1.0. - Запрос не понят сервером из-за наличия синтаксической ошибки. Клиенту следует повторно обратиться к ресурсу с изменённым запросом.


Quote
401 Unauthorized (русск. Неавторизован) Появился в HTTP/1.0. -Запрос требует идентификации пользователя. Клиент должен запросить имя и пароль у пользователя и передать их в записи WWW-Authenticate заголовка в следующем запросе. В случае ввода ошибочных данных сервер снова вернёт этот же статус.


Quote
402 Payment Required (русск. Необходима оплата ) Зарезервирован начиная с HTTP/1.1. -Предполагается использовать в будущем. В настоящий момент не используется.


Quote
403 Forbidden (русск. Запрещено) Появился в HTTP/1.0. -Сервер понял запрос, но он отказывается его выполнять из-за каких-то ограничений в доступе. Идентификация через протокол HTTP здесь не поможет. Скорее всего, на сервере нужно провести аутентификацию другим способом, сделать запрос с определёнными параметрами или удовлетворить каким-либо условиям.

Сообщение 403 может возвращаться, если хозяин сайта по каким-то соображениям решил закрыть от пользователей часть информации. Кроме того, если веб-сервер не имеет прав доступа к запрошенному документу, он также вернёт код 403. Простая ситуация, когда страница может на самом деле не существовать, но сервер выдаст ошибку 403 (запрещено), а не 404 (не найдено): страница находится в директории foo, доступ к которой был запрещён веб-серверу — таким образом веб-сервер не может «знать», есть в этой директории такая страница, или нет.

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


Quote
404 Not Found (русск. Не найдено) Появился в HTTP/1.0. -Сервер понял запрос, но не нашёл соответствующего ресурса по указанному URI. Если серверу известно, что по этому адресу был документ, то ему желательно использовать код 410 вместо этого. Этот код может использоваться вместо 403, если требуется тщательно скрыть от посторонних глаз определённые ресурсы.


Quote
405 Method Not Allowed (русск. Метод не поддерживается) Появился в HTTP/1.1. -Указанный клиентом метод нельзя применить к ресурсу. Сервер также должен передать в заголовке ответа поле Allow со списком доступных методов.


Quote
406 Not Acceptable (русск. Не приемлемо) Появился в HTTP/1.1. -Запрошенный URI не может удовлетворить переданным в заголовке характеристикам. Если метод был не HEAD, то сервер должен вернуть список допустимых характеристик для данного ресурса.


Quote
407 Proxy Authentication Required (русск. Необходима авторизация прокси) Появился в HTTP/1.1. -Ответ аналогичен коду 401 за исключением того, что аутентификация производится для прокси-сервера. Механизм аналогичен идентификации на обычном сервере.


Quote
408 Request Timeout (русск. Время ожидания истекло) Появился в HTTP/1.1 - Время ожидания сервером передачи от клиента истекло. Клиент может повторить аналогичный предыдущему запрос в любое время.


Quote
409 Conflict (русск. Конфликт) Появился в HTTP/1.1. - Запрос не может выполнен из-за конфликтного обращения к ресурсу. Такое возможно, например, когда два клиента пытаются изменить ресурс с помощью метода PUT.


Quote
410 Gone (русск. Удалён) Появился в HTTP/1.1. -Такой ответ сервер посылает, когда ресурс раньше был по указанному URI, но был удалён и теперь недоступен. Серверу в этом случае не известно и местоположение альтернативного документа (например, копии). Если у сервера есть подозрение, что документ в ближайшее время может быть восстановлен, то лучше клиенту передать код 404.


Quote
411 Length Required (русск. Необходима длина) Появился в HTTP/1.1. -Для указанного ресурса клиент должен указать Content-Length в заголовке запроса. Без указания этого поля не стоит делать повторную попытку запроса к серверу по данному URI.


Quote
412 Precondition Failed (русск. Условие «ложно») Появился в HTTP/1.1. - Возвращается, если ни одно из условных полей заголовка запроса не было выполнено.


Сообщение отредактировал charista - Среда, 18 Фев 2009, 13:13:54
charista
Сообщений: 6
Репутация: 7
Уровень замечаний:

Сообщение # 3 | 13:14:08
Quote
413 Request Entity Too Large (русск. Запрашиваемые данные слишком большие) Появился в HTTP/1.1. -Возвращается если сервер по каким-то причинам не может передать запрашиваемый объём информации. Если проблема временная, то сервер может в ответе указать в поле Retry-After время, по истечении которого можно повторить аналогичный запрос.


Quote
414 Request-URI Too Long (русск. Запрашиваемый URI слишком длинный) Появился в HTTP/1.1. -Сервер не может обработать запрос из-за слишком длинного указанного URI. Такую ошибку можно спровоцировать, например, когда клиент пытается передать длинные параметры через метод GET, а не POST.


Quote
415 Unsupported Media Type (русск. Неподдерживаемый тип данных) Появился в HTTP/1.1. -По каким-то причинам сервер отказывается работать с указанным типом данных при данном методе.


Quote
416 Requested Range Not Satisfiable (русск. Запрашиваемый диапазон не достижим) Введено в RFC 2616 (обновление HTTP/1.1). -В поле Range заголовка запроса был указан диапазон за пределами ресурса и отсутствует поле If-Range. Если клиент передал байтовый диапазон, то сервер может вернуть реальный размер в поле Content-Range заголовка. Данный ответ не следует использовать при передаче типа multipart/byteranges.


Quote
417 Expectation Failed (русск. Ожидаемое ошибочно) Введено в RFC 2616 (обновление HTTP/1.1). -По каким-то причинам сервер не может удовлетворить значению поля Expect заголовка запроса.


Quote
422 Unprocessable Entity (русск. Необрабатываемый экзмепляр) Введено в WebDAV. -Сервер успешно принял запрос, может работать с указанным видом данных, в теле запроса XML-документ имеет верный синтаксис, но имеется какая-то логическая ошибка из-за которой невозможно произвести операцию над ресурсом.


Quote
423 Locked (русск. Заблокировано) Введено в WebDAV -Целевой ресурс из запроса заблокирован от применения к нему указанного метода.


Quote
424 Failed Dependency (русск. Невыполненная зависимость) Введено в WebDAV. -Реализация текущего запроса может зависеть от успешности выполнения другой операции. Если она не выполнена и из-за этого нельзя выполнить текущий запрос, то сервер вернёт код 424.


Quote
426 Upgrade Required (русск. Необходимо обновление) Введено в RFC 2817 для возможности перехода к TLS посредством HTTP. -Сервер указывает клиенту на необходимость обновить протокол. Заголовок ответа должен содержать правильно сформированные поля Upgrade и Connection.


5xx: Server Error

Коды 5xx выделены под случаи неудачного выполнения операции по вине сервера. Для всех ситуаций, кроме использования метода HEAD, сервер должен включать в тело сообщения объяснение, которое клиент отобразит пользователю.

Quote
500 Internal Server Error (русск. Внутренняя ошибка сервера) Появился в HTTP/1.0. -Любая внутренняя ошибка сервера, которая не входит в рамки остальных ошибок класса 5xx.


Quote
501 Not Implemented (русск. Не реализовано) Появился в HTTP/1.0. -Сервер не поддерживает возможностей, необходимых для обработки запроса. Типичный ответ для случаев, когда сервер не понимает указанный в запросе метод.


Quote
502 Bad Gateway (русск. Плохой шлюз) Появился в HTTP/1.0. -Сервер в роли шлюза или прокси получил сообщение о неудачном выполнении промежуточной операции.


Quote
503 Service Unavailable (русск. Сервис недоступен) Появился в HTTP/1.0. -Сервер временно не имеет возможности обрабатывать запросы по техническим причинам (обслуживание, перегрузка и прочее). В поле Retry-After заголовка сервер может указать время, через которое клиенту рекомендуется повторить запрос. Хотя во время перегрузки очевидным является сразу разрывать соединение, эффективней может оказаться установка большого значения поля Retry-After для уменьшения частоты избыточных запросов.


Quote
504 Gateway Timeout (русск. Шлюз не отвечает) Появился в HTTP/1.1. -Сервер в роли шлюза или прокси не дождался ответа от вышестоящего сервера для завершения текущего запроса.


Quote
505 HTTP Version Not Supported (русск. Версия HTTP не поддерживается) Появился в HTTP/1.1. -Сервер не поддерживает или отказывается поддерживать указанную в запросе версию протокола HTTP.


Quote
506 Variant Also Negotiates (русск. Вариант тоже согласован) Экспериментальное. Введено в RFC 2295 для дополнения протокола HTTP технологией Transparent Content Negotiation. - В результате ошибочной конфигурации выбранный вариант указывает сам на себя из-за чего процесс связывания прерывается.


Quote
507 Insufficient Storage (русск. Закончилось место) Введено в WebDAV. -Не хватает места для выполнения текущего запроса. Проблема может быть временной.


Quote
510 Not Extended (русск. Не расширено) Введено в RFC 2774 для дополнения протокола HTTP поддержкой расширений -На сервере отсутствует расширение, которое планирует использовать клиент. Сервер может дополнительно передать информацию о доступных ему расширениях.

Сообщение отредактировал charista - Среда, 18 Фев 2009, 13:52:17
Сообщество uCoz » Вебмастеру » JavaScript, Flash и прочие технологии » Ошибки связи с сервером: HTTP 500 и другие (Сервер временно не может отобразить запрошенную страницу)
Страница 1 из 11
Поиск: