Ошибка страницы

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

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

Выберите номер ошибки:

100 Continue – сервер удовлетворён начальными сведениями о запросе, клиент может продолжать пересылать заголовки.
101 Switching Protocols – сервер предлагает перейти на более подходящий для указанного ресурса протокол; список предлагаемых протоколов сервер обязательно указывает в поле заголовка Upgrade. Если клиента это заинтересует, то он посылает новый запрос с указанием другого протокола.
102 Processing – запрос принят, но на его обработку понадобится длительное время. Используется сервером, чтобы клиент не разорвал соединение из-за превышения времени ожидания.
200 OK – успешный запрос.
201 Created – в результате успешного выполнения запроса был создан новый ресурс. Сервер может указать адреса (их может быть несколько) созданного ресурса в теле ответа, при этом предпочтительный адрес указывается в заголовке Location. Серверу рекомендуется указывать в теле ответа характеристики созданного ресурса и его адреса, формат тела ответа определяется заголовком Content-Type. При обработке запроса, новый ресурс должен быть создан до отправки ответа клиенту, иначе следует использовать ответ с кодом 202.
202 Accepted – запрос был принят на обработку, но она не завершена. Клиенту не обязательно дожидаться окончательной передачи сообщения, так как может быть начат очень долгий процесс.
203 Non-Authoritative Information – аналогично ответу 200, но в этом случае передаваемая информация была взята не из первичного источника (резервной копии, другого сервера и т. д.) и поэтому может быть неактуальной.
204 No Content – сервер успешно обработал запрос, но в ответе были переданы только заголовки без тела сообщения. Клиент не должен обновлять содержимое документа, но может применить к нему полученные метаданные.
205 Reset Content – сервер обязывает клиента сбросить введённые пользователем данные. Тела сообщения сервер при этом не передаёт и документ обновлять не обязательно.
206 Partial Content – сервер удачно выполнил частичный GET-запрос, возвратив только часть сообщения. В заголовке Content-Range сервер указывает байтовые диапазоны содержимого. Особое внимание при работе с подобными ответами следует уделить кэшированию.
207 Multi-Status – сервер передаёт результаты выполнения сразу нескольких независимых операций. Они помещаются в само тело сообщения в виде XML-документа с объектом multistatus.
226 IM Used – заголовок A-IM от клиента был успешно принят и сервер возвращает содержимое с учётом указанных параметров.
300 Multiple Choices – по указанному URI существует несколько вариантов предоставления ресурса по типу MIME, по языку или по другим характеристикам. Сервер передаёт с сообщением список альтернатив, давая возможность сделать выбор клиенту автоматически или пользователю.
301 Moved Permanently – запрошенный документ был окончательно перенесен на новый URI, указанный в поле Location заголовка. Некоторые клиенты некорректно ведут себя при обработке данного кода.
302 Found или 302 Moved Temporarily – запрошенный документ временно доступен по другому URI, указанному в заголовке в поле Location. Этот код может быть использован, например, при управляемом сервером согласовании содержимого. Некоторые клиенты некорректно ведут себя при обработке данного кода.
303 See Other – документ по запрошенному URI нужно запросить по адресу в поле Location заголовка с использованием метода GET несмотря даже на то, что первый запрашивался иным методом. Этот код был введён вместе с 307-ым для избежания неоднозначности, чтобы сервер был уверен, что следующий ресурс будет запрошен методом GET.
304 Not Modified – сервер возвращает такой код, если клиент запросил документ методом GET, использовал заголовок If-Modified-Since или If-None-Match и документ не изменился с указанного момента.
305 Use Proxy – запрос к запрашиваемому ресурсу должен осуществляться через прокси-сервер, URI которого указан в поле Location заголовка. Данный код ответа могут использовать только исходные HTTP-сервера (не прокси).
307 Temporary Redirect – запрашиваемый ресурс на короткое время доступен по другому URI, указанный в поле Location заголовка. Метод запроса (GET/POST) менять не разрешается. Например, POST запрос должен быть отправлен по новому URI тем же методом POST. Этот код был введён вместе с 303 вместо 302-го для избежания неоднозначности.
400 Bad Request – сервер обнаружил в запросе клиента синтаксическую ошибку.
401 Unauthorized – для доступа к запрашиваемому ресурсу требуется аутентификация. В заголовке ответ должен содержать поле WWW-Authenticate с перечнем условий аутентификации. Клиент может повторить запрос, включив в заголовок сообщения поле Authorization с требуемыми для аутентификации данными.
402 Payment Required – предполагается использовать в будущем. В настоящий момент не используется. Этот код предусмотрен для платных пользовательских сервисов, а не для хостинговых компаний. Имеется в виду, что эта ошибка не будет выдана хостинговым провайдером в случае просроченной оплаты его услуг.
403 Forbidden – сервер понял запрос, но он отказывается его выполнять из-за ограничений в доступе для клиента к указанному ресурсу. Если для доступа к ресурсу требуется аутентификация средствами HTTP, то сервер вернёт ответ 401, или 407 при использовании прокси. В противном случае ограничения были заданы администратором сервера или разработчиком веб-приложения и могут быть любыми в зависимости от возможностей используемого программного обеспечения.
404 Not Found – самая распространённая ошибка при пользовании Интернетом, основная причина – ошибка в написании адреса Web-страницы. Сервер понял запрос, но не нашёл соответствующего ресурса по указанному URI. Если серверу известно, что по этому адресу был документ, то ему желательно использовать код 410. Ответ 404 может использоваться вместо 403, если требуется тщательно скрыть от посторонних глаз определённые ресурсы.
405 Method Not Allowed – указанный клиентом метод нельзя применить к текущему ресурсу. В ответе сервер должен указать доступные методы в заголовке Allow, разделив их запятой. Эту ошибку сервер должен возвращать, если метод ему известен, но он не применим именно к указанному в запросе ресурсу, если же указанный метод не применим на всём сервере, то клиенту нужно вернуть код 501 (Not Implemented).
406 Not Acceptable – запрошенный URI не может удовлетворить переданным в заголовке характеристикам. Если метод был не HEAD, то сервер должен вернуть список допустимых характеристик для данного ресурса.
407 Proxy Authentication Required – ответ аналогичен коду 401 за исключением того, что аутентификация производится для прокси-сервера. Механизм аналогичен идентификации на исходном сервере.
408 Request Timeout – время ожидания сервером передачи от клиента истекло. Клиент может повторить аналогичный предыдущему запрос в любое время. Например, такая ситуация может возникнуть при загрузке на сервер объёмного файла методом POST или PUT. В какой-то момент передачи источник данных перестал отвечать, например, из-за повреждения компакт-диска или потери связи с другим компьютером в локальной сети. Пока клиент ничего не передаёт, ожидая от него ответа, соединение с сервером держится. Через некоторое время сервер может закрыть соединение со своей стороны, чтобы дать возможность другим клиентам сделать запрос. Этот ответ не возвращается, когда клиент принудительно остановил передачу по команде пользователя или соединение прервалось по каким-то иным причинам, так как ответ уже послать невозможно.
409 Conflict – запрос не может быть выполнен из-за конфликтного обращения к ресурсу. Такое возможно, например, когда два клиента пытаются изменить ресурс с помощью метода PUT
410 Gone – такой ответ сервер посылает, если ресурс раньше был по указанному URL, но был удалён и теперь недоступен. Серверу в этом случае неизвестно и местоположение альтернативного документа, например, копии). Если у сервера есть подозрение, что документ в ближайшее время может быть восстановлен, то лучше клиенту передать код 404.
411 Length Required – для указанного ресурса клиент должен указать Content-Length в заголовке запроса. Без указания этого поля не стоит делать повторную попытку запроса к серверу по данному URI. Такой ответ естественен для запросов типа POST и PUT.
412 Precondition Failed – возвращается, если ни одно из условных полей заголовка (If-Match и др.) запроса не было выполнено.
413 Request Entity Too Large – возвращается в случае, если сервер отказывается обработать запрос по причине слишком большого размера тела запроса. Сервер может закрыть соединение, чтобы прекратить дальнейшую передачу запроса. Если проблема временная, то рекомендуется в ответ сервера включить заголовок Retry-After с указанием времени, по истечении которого можно повторить аналогичный запрос.
414 Request-URL Too Long – сервер не может обработать запрос из-за слишком длинного указанного URL. Такую ошибку можно спровоцировать, например, когда клиент пытается передать длинные параметры через метод GET, а не POST.
415 Unsupported Media Type – по каким-то причинам сервер отказывается работать с указанным типом данных при данном методе.
416 Requested Range Not Satisfiable – в поле Range заголовка запроса был указан диапазон за пределами ресурса и отсутствует поле If-Range. Если клиент передал байтовый диапазон, то сервер может вернуть реальный размер в поле Content-Range заголовка.
417 Expectation Failed – по каким-то причинам сервер не может удовлетворить значению поля Expect заголовка запроса.
418 I'm a teapot – Этот код был введен в 1998 году как одна из традиционных первоапрельских шуток IETF в RFC 2324, Hyper Text Coffee Pot Control Protocol. Не ожидается, что данный код будет поддерживаться реальными серверами.
422 Unprocessable Entity – сервер успешно принял запрос, может работать с указанным видом данных, в теле запроса XML-документ имеет верный синтаксис, но имеется какая-то логическая ошибка, из-за которой невозможно произвести операцию над ресурсом.
423 Locked – целевой ресурс из запроса заблокирован от применения к нему указанного метода.
424 Failed Dependency – реализация текущего запроса может зависеть от успешности выполнения другой операции. Если она не выполнена и из-за этого нельзя выполнить текущий запрос, то сервер вернёт этот код.
425 Unordered Collection – используется в расширении WebDAV Advanced Collections Protocol. Посылается, если клиент указал номер элемента в неупорядоченном списке, или запросил несколько элементов в порядке, отличающемся от серверного.
426 Upgrade Required – сервер указывает клиенту на необходимость обновить протокол. Заголовок ответа должен содержать правильно сформированные поля Upgrade и Connection.
428 Precondition Required – сервер указывает клиенту на необходимость использования в запросе заголовков условий, наподобие If-Match.
429 Too Many Requests – клиент попытался отправить слишком много запросов за короткое время, что может указывать, например, на попытку DDoS-атаки. Может сопровождаться заголовком Retry-After, указывающим, через какое время можно повторить запрос.
431 Request Header Fields Too Large – Превышена допустимая длина заголовков. Сервер не обязан отвечать этим кодом, вместо этого он может просто сбросить соединение.
434 Requested host unavailable – Запрашиваемый адрес недоступен.
449 Retry With – возвращается сервером, если для обработки запроса от клиента поступило недостаточно информации. При этом в заголовок ответа помещается поле Ms-Echo-Request.
451 Unavailable For Legal Reasons – доступ к ресурсу закрыт по юридическим причинам, например, по требованию органов государственной власти или по требованию правообладателя в случае нарушения авторских прав.
500 Internal Server Error – любая внутренняя ошибка сервера, которая не входит в рамки остальных ошибок класса.
501 Not Implemented – сервер не поддерживает возможностей, необходимых для обработки запроса. Типичный ответ для случаев, когда сервер не понимает указанный в запросе метод.
502 Bad Gateway – сервер, выступая в роли шлюза или прокси-сервера, получил недействительное ответное сообщение от вышестоящего сервера.
503 Service Unavailable – сервер временно не имеет возможности обрабатывать запросы по техническим причинам (обслуживание, перегрузка и прочее).
504 Gateway Timeout – сервер в роли шлюза или прокси-сервера не дождался ответа от вышестоящего сервера для завершения текущего запроса.
505 HTTP Version Not Supported – сервер не поддерживает или отказывается поддерживать указанную в запросе версию протокола HTTP.
506 Variant Also Negotiates – в результате ошибочной конфигурации выбранный вариант указывает сам на себя, из-за чего процесс связывания прерывается.
507 Insufficient Storage – не хватает места для выполнения текущего запроса. Проблема может быть временной.
509 Bandwidth Limit Exceeded – используется при превышении веб-площадкой отведённого ей ограничения на потребление трафика. В данном случае владельцу площадки следует обратиться к своему хостинг-провайдеру.
510 Not Extended – на сервере отсутствует расширение, которое желает использовать клиент. Сервер может дополнительно передать информацию о доступных ему расширениях.
511 Network Authentication Required – этот ответ посылается не сервером, которому был предназначен запрос, а сервером-посредником — например, сервером провайдера — в случае, если клиент должен сначала авторизоваться в сети, например, ввести пароль для платной точки доступа к Интернету. Предполагается, что в теле ответа будет возвращена Web-форма авторизации или перенаправление на неё.

Ошибка 404 и другие

Ошибка страницы Ошибка 404 и другие
Язык:Русский
Формат:
Обновлено:2017-01-07
Автор:





Ошибка 404 и другие

Узнайте всё о различных ошибках в браузере и о том, как на них правильно реагировать.

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

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

Основные причины и типы ошибок

Все ошибки, которые выдаёт нам браузер, можно разделить на несколько групп:

  1. Ошибки Интернет-соединения. Наиболее распространённой ошибкой данного типа является "Попытка подключения не удалась" или "Не удаётся получить доступ к сайту" (текст зависит от Вашего браузера). Такая ошибка появляется в двух случаях: либо сервер запрашиваемого Вами сайта вообще не работает, либо у Вас не работает подключение к Интернету. В первом случае другие сайты у Вас будут открываться и можно будет попытаться открыть нужный веб-ресурс спустя какое-то время (когда восстановится работа сервера). Во втором же случае Вы не сможете открыть ни единой странички вообще и это будет означать, что проблемы либо у Вас, либо у Вашего провайдера. Такой вариант ошибки часто сопровождается уведомлением в трее: "Сетевой кабель не подключён".

Ошибки соединения в Chrome и Firefox

  1. Ошибки запроса. Эта группа ошибок включает в себя целый ряд всевозможных ответов сервера на неверно сформированный запрос. Чаще всего такой ошибочный запрос формируем мы сами, пытаясь ввести адрес несуществующей страницы. Стандартным ответом сервера на такой запрос будет ошибка 404 "Страница не найдена". Данный вид ошибок случается настолько часто, что в сфере разработки сайтов уже стало традицией оригинально оформлять специальную страницу, которая выдаётся при возникновении 404 ошибки, чтобы помочь пользователю найти искомую или похожую информацию, либо просто развлечь. Однако, кроме ошибки 404 существует ещё целый ряд возможных ошибок, начинающихся с кода 400. О них мы поговорим чуть позже.

Ошибка 400, ошибка 403, ошибка 404

  1. Ошибки сервера. Если Ваш запрос не доходит до запрошенного веб-узла, либо успешно достигает сервера, но не может быть им обработан, возникают ошибки с кодом, начинающимся на 500. Наиболее распространёнными вариантами таких ошибок сервера являются: 502 Bad Gateway, 503 Service Unavailable или 504 Gateway Timeout. Чаще всего такие ошибки означают то, что запрошенный Вами веб-ресурс временно или постоянно недоступен и не требуют никаких действий с Вашей стороны.

Ошибка 502, ошибка 503, ошибка 504

Кроме вышеупомянутых ошибок, сервер может выдавать ещё ряд кодов состояния, начинающихся с чисел 100 (информационные сообщения), 200 (коды успешной обработки запроса) и 300 (коды перенаправлений). Эти коды состояния, как правило, не визуализируются в браузере, однако могут быть просмотрены в заголовках ответов при использовании инструментария разработчиков браузера. Кстати, нормой считается ответ 200 OK или 301 Moved Permanently с корректным перенаправлением на новый адрес страницы:

Ответ сервера 200 в Firefox

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


Ошибка 404 Not Found и другие

Как уже было сказано выше, наиболее частой ошибкой, которую видит пользователь в браузере, является 404 Not Found. Это корректный ответ сервера в случае, если Вы запросили несуществующую страницу. Это может случится как по Вашему недосмотру (например, при ручном вводе адреса), так и по вине администрации посещаемого Вами сайта (например, страница была перемещена, но для неё не было прописано никаких правил перенаправления).

В любом случае, если Вы видите страницу 404 или 400 Bad Request, первым делом внимательно проверьте правильность адреса в адресной строке. Часто бывает, что даже в ссылках, по которым Вы переходите, закрадываются ошибки, которые видны с первого взгляда и могут быть сразу же исправлены:

  • отсутствующий или неправильно указанный протокол перед адресом сайта (должно быть "http://");
  • отсутствующий или неверно заданный формат веб-страницы (обычно, ".php", ".html" или ".htm", хотя, формат может быть и не указан, если заданы соответствующие настройки сервера и адрес завершается символом "/");
  • дублирующийся фрагмент адреса (например, два раза под ряд указана категория или имя страницы);
  • пропущенные или неверные символы (самая коварная ошибка, которую бывает трудно распознать, особенно, если в качестве ошибок фигурируют цифра "0" и буква "o" или английская и русская "c").

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

Страница 404 на BestFree.ru

Однако, не только 404 ошибка часто попадается на глаза. Среди второй по популярности можно назвать ошибку 403 Forbidden и её вариант 401 Unauthorized. Возникают данные ошибки, как нетрудно догадаться, вследствие попытки пользователя получить доступ к определённой закрытой информации, которая требует для отображения авторизации на веб-ресурсе.

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

Страница 403

Некоторые серверы могут возвращать ошибку 414 Request-URL Too Long. Возникает она тогда, когда длина адреса запрашиваемого ресурса (со всеми GET-параметрами) превышает определённый лимит количества символов (обычно 128 или 256).

Ошибка 414

Попробовать избежать подобной ошибки можно, убрав в адресной строке все символы, идущие после знака вопроса (включая сам знак). Например, из адреса типа: "https://www.site.name/page.php?name=Vasya&lastname=Pupkin" нужно сделать URL вида: "https://www.site.name/page.php". Правда, если авторизация на таком сайте происходит через передачу GET-параметров, то мы можем получить вышеупомянутые ошибки 401 или 403 :).

Ошибка 500 Internal Server Error и другие

Различных ошибок на клиентской стороне существует гораздо больше, нежели описано выше, но на практике они почти не встречаются. Зато сплошь и рядом случаются серверные ошибки... Все они имеют коды, начинающиеся числом "500", а сама ошибка 500 Internal Server Error может означать любой сбой сервера и встречается наиболее часто.

Ошибка 500

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

Всё, что мы можем попытаться сделать для устранения ошибки – обновить страницу с очисткой кеша (в большинстве браузеров нужно нажать на кнопку обновления страницы с зажатым SHIFT или нажать клавишу F5). Если это не помогает, можно попробовать удалить куки и прочие временные файлы (проще всего программой CCleaner). Гарантии восстановления работоспособности сайта это не даст, но зато Вы будете точно знать, что проблема не у Вас.

Кроме ошибки 500 сервер может выдать и более информативные коды. Наиболее часто в данной группе встречаются ошибки 502 Bad Gateway, 503 Service Unavailable и 504 Gateway Timeout. 503 ошибка, увы, особо ситуацию не проясняет, зато ошибки 502 и 504 уже являются более конкретными.

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

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

Ответ 301 и другие

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

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

Ошибка 301

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

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

Наряду с ответом 200 OK, который сообщает об успешной загрузке страницы, 301 Moved Permanently является одним из допустимых успешных ответов сервера. Кроме того, об успехе выполнения запроса свидетельствуют практически все двухсотые ответы (за исключением 204 No Content, который считается успешным, но не возвращает никакого содержимого), а также ряд трёхсотых:

  • 302 Moved Temporarily (или 302 Found) (временное перемещение);
  • 303 See Other (ссылка на другую страницу);
  • 307 Temporary Redirect (временный редирект).

Кроме того, существует небольшая группа сотых ответов, которая называется информационной. Информационные ответы 100 Continue, 101 Switching Protocols и 102 Processing просто дают браузеру команду продолжать работу в текущем режиме, переключить протокол или подождать завершения обработки запроса, соответственно. Эти коды никак не визуализируются, но знать о них всё же не помешает :)

Выводы

Ошибок страниц и ответов сервера существует довольно большое количество, но знать их все необязательно (достаточно просто понимать их природу). Гораздо важнее запомнить, что можно сделать, чтобы получить доступ к нужным страницам. И здесь вариантов не так уж много:

  • убедиться, что у Вас есть доступ в Интернет (попробовать открыть другие сайты);
  • проверить правильность нужного адреса;
  • авторизироваться (или зарегистрироваться) на сайте (если выдаётся ошибка доступа);
  • обновить страницу (возможно с зажатым SHIFT'ом для сброса кеша);
  • удалить куки и временные файлы (средствами браузера или сторонних утилит);
  • воспользоваться поиском по сайту (если сам сайт доступен).

Вот и все премудрости :) Успешного и безошибочного Вам Интернет-сёрфинга!

P.S. Разрешается свободно копировать и цитировать данную статью при условии указания открытой активной ссылки на источник и сохранения авторства Руслана Тертышного.







Полезный совет:



Система проверки ошибок от Mistakes.ru