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

что это значит и как это использовать

на страницах сайта

www.electrosad.ru

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

 

Сообщения сервера.

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

Сообщения сервера описаны в Wiki так:

Код состояния HTTP (англ. HTTP status code) — часть первой строки ответа сервера при запросах по протоколу HTTP. Он представляет собой целое число из трех арабских цифр. Первая цифра указывает на класс состояния. За кодом ответа обычно следует отделённая пробелом поясняющая фраза на английском языке, которая разъясняет причину именно такого ответа.
Примеры:
201 Webpage Created.
404 Not Found.
403 Access allowed only for registered users.
507 Insufficient Storage.
Клиент узнаёт по коду ответа о результатах его запроса и определяет какие действия ему предпринимать дальше, чтобы исключить ошибки.
Набор кодов состояния является стандартом, и они описаны в соответствующих документах RFC.

 

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

 

Подробно рассматривать все я здесь не буду, а приведу только краткое описание:

Status-Code Eng Ru Описание Примечание
100 Continue продолжить Начальная часть запроса принята, и клиент может продолжать передачу запроса 1xx:
Informational (информационные)
101 Switching Protocols переключение протоколов Сервер выполняет требование клиента и переключает протоколы в соответствии с указанием, данным в поле заголовка Upgrade
102 Processing идёт обработка запрос принят, но на его обработку понадобится длительное время. Используется сервером, чтобы клиент не разорвал соединение из-за превышения времени ожидания. Клиент при получении такого ответа должен сбросить таймер и дожидаться следующей команды в обычном режиме
200 OK хорошо Запрос клиента обработан успешно и ответ сервера содержит затребованные данные 2xx:
Success
(успешно)
201 Created создано Этот код состояния используется в случае создания нового URL. Вместе с этим кодом результата сервер выдает заголовок Location, который содержит информацию о том, куда были помещены новые данные
202 Accepted принято Запрос принят, но обрабатывается не сразу. В теле содержимого ответа сервера может быть дана дополнительная информация о данной транзакции. Гарантии того, что сервер в конечном итоге удовлетворит запрос, нет, даже несмотря на то, что на момент приема запрос выглядел допустимым
203 Non-Authoritative Information информация не авторитетна Информация в заголовке содержимого взята из локальной копии или у третьей стороны, а не с исходного сервера
204 No Content нет содержимого Ответ содержит код состояния и заголовок, но тело содержимого отсутствует. При получении этого ответа броузер не должен обновлять свой документ. Обработчик чувствительных областей изображений может возвращать этот код, когда пользователь щелкает на бесполезных или пустых участках изображения
205 Reset Content сбросить содержимое Броузер должен очистить форму, используемую в данной транзакции, для дополнительных входных данных. Полезен для CGI-приложений, требующих ввода данных
206 Partial Content частичное содержимое Сервер возвращает лишь часть данных затребованного объема. Используется в ответе на запрос с указанием заголовка Range. Сервер должен указать диапазон, включенный в ответ, в заголовке Content-Range
207 Multi-Status многостатусный сервер передаёт результаты выполнения сразу нескольких независимых операций. Они помещаются в само тело сообщения в виде XML-документа с объектом multistatus. Не рекомендуется размещать в этом объекте статусы из серии 1xx из-за бессмысленности и избыточности
226 IM Used использовано IM заголовок A-IM от клиента был успешно принят и сервер возвращает содержимое с учётом указанных параметров. Введено в RFC 3229 для дополнения протокола HTTP поддержкой дельта-кодирования
300 Multiple Choices множество выборов Затребованный URI обозначает более одного ресурса. Например, URI может обозначать документ, переведенный на несколько языков. В теле содержимого, возвращенном сервером, может находиться перечень более конкретных данных о том, как выбрать ресурс правильно 3xx:
Redirection (перенаправление)
301 Moved Permanently перемещено навсегда Документ уже не используется сервером, а ссылка перенаправляет на другую страницу
302 Found найдено Запрошенный ресурс временно находится под другим адресом
303 See Other смотреть другое Запрошенный ресурс находится под другим адресом и его следует запрашивать, используя метод GET
304 Not Modified не изменялось Это код ответа на заголовок lf-Modified-Since, если URI не изменялся с указанной даты. Тело содержимого не посылается, и клиент должен использовать свою локальную копию
305 Use Proxy использовать прокси Доступ к затребованному URI должен осуществляться через proxy-сервер, указанный в заголовке Location
307 Temporary Redirect временное перенаправление Затребованный ресурс был временно переведен на другой адрес, который необходимо прописать в Location
400 Bad Request неверный запрос Запрос не может быть понят сервером из-за некорректного синтаксиса 4xx:
Client Error
(ошибка клиента)
401 Unauthorized неавторизован Для доступа к документу необходимо вводить пароль или быть зарегистрированным пользователем
402 Payment Required необходима оплата Внутренняя ошибка или ошибка конфигурации сервера
403 Forbidden запрещено Доступ к документу запрещен
404 Not Found не найдено Документ по указанному URL не существует. Возможно, такой файл удален, а возможно, вы ошиблись при наборе URL в браузере или пошли по неверной ссылке
405 Method Not Allowed метод не поддерживается Этот код выдается с заголовком Allow и показывает, что метод, используемый клиентом, для данного URL не поддерживается. (Например, при отправки POST данных на страницу, которая не является скриптом)
406 Not Acceptable не приемлемо Ресурс, указанный клиентом по данному URL, существует, но не в том формате, который нужен клиенту. Вместе с этим кодом сервер выдает заголовки Content-Language, Content-Encoding и Content-Type
407 Proxy Authentication Required необходима аутентификация прокси Proxy-сервер должен санкционировать запрос перед тем, как пересылать его. Используется с заголовком Proxy-Authenticate
408 Request Timeout истекло время ожидания Этот код ответа означает, что клиент не передал полный запрос в течение некоторого установленного промежутка времени (который обычно задается в конфигурации сервера) и сервер разрывает сетевое соединение
409 Conflict конфликт Данный запрос конфликтует с другим запросом или с конфигурацией сервера. Информацию о конфликте следует возвратить в информационной части ответа
410 Gone удалён Затребованный ресурс был окончательно удален с сайта
411 Length Required необходима длина Сервер отказывается принимать запрос без определенного заголовка Content-Length
412 Precondition Failed условие ложно При проверке на сервере одного или более полей заголовка запроса обнаружено несоответствие (сбой или ошибка при обработке предварительного условия)
413 Request Entity Too Large размер запроса слишком велик Сервер отказывается обрабатывать запрос потому, что размер запроса больше того, что может обработать сервер
414 Request-URI Too Large запрашиваемый URI слишком длинный Сервер не будет обрабатывать запрос, потому что его URL слишком длинный.
415 Unsupported Media Type неподдерживаемый тип данных Сервер отказывается обрабатывать запрос, потому что тело запроса имеет неподдерживаемый формат
416 Requested Range Not Satisfiable запрашиваемый диапазон не достижим Сервер отказывается обрабатывать запрос, потому что значение поля Range в заголовке запроса указывает на недопустимый диапазон байтов
417 Expectation Failed ожидаемое неприемлемо Сервер отказывается обрабатывать запрос, потому что значение поля Expect в заголовке запроса не соответствует ожиданиям
422 Unprocessable Entity необрабатываемый экземпляр Сервер не в состоянии обработать один (или более) элемент запроса.
423 Locked заблокировано Сервер отказывается обработать запрос, так как один из требуемых ресурсов заблокирован
424 Failed Dependency невыполненная зависимость Сервер отказывается обработать запрос, так как один из зависимых ресурсов заблокирован
425 Unordered Collection неупорядоченный набор посылается, если клиент послал запрос, обозначив положение в неотсортированной коллекции или используя порядок следования элементов, отличный от серверного[уточнить]. Введено в черновике по WebDAV Advanced Collections Protocol
426 Upgrade Required необходимо обновление Сервер запросил апгрейд соединения до SSL, но SSL не поддерживается клиентом
449 Retry With повторить с возвращается сервером, если для обработки запроса от клиента поступило недостаточно информации. При этом в заголовок ответа помещается поле Ms-Echo-Request. В настоящий момент как минимум используется программой Microsoft Money
456 Unrecoverable Error некорректируемая ошибка возвращается сервером, если обработка запроса вызывает некорректируемые сбои в таблицах баз данных
500 Internal Server Error внутренняя ошибка сервера Сервер столкнулся с непредвиденным условием, которое не позволяет ему выполнить запрос 5xx:
Server Error
(ошибка сервера)
501 Not Implemented не реализовано Сервер не поддерживает функциональные возможности, требуемые для выполнения запроса. Этот ответ соответствует состоянию, когда сервер не распознает метод запроса и не способен обеспечить его для любого ресурса
502 Bad Gateway плохой, ошибочный шлюз Сервер, действуя в качестве шлюза или прокси-сервера, получил недопустимый ответ от следующего сервера в цепочке запросов, к которому обратился при попытке выполнить запрос
503 Service Unavailable сервис недоступен Возникла ошибка из-за временной перегрузки или отключения на техническое обслуживание сервера
504 Gateway Timeout шлюз не отвечает Сервер, при работе в качестве внешнего шлюза или прокси-сервера, своевременно не получил отклик от вышестоящего сервера, к которому он обратился, пытаясь выполнить запрос
505 HTTP Version Not Supported версия HTTP не поддерживается Сервер не поддерживает или отказывается поддерживать версию HTTP-протокола, которая используется в сообщении запроса робота
506 Variant Also Negotiates вариант тоже проводит согласование в результате ошибочной конфигурации выбранный вариант указывает сам на себя, из-за чего процесс связывания прерывается. Экспериментальное. Введено в RFC 2295 для дополнения протокола HTTP технологией Transparent Content Negotiation
507 Insufficient Storage переполнение хранилища Сервер не может обработать запрос из-за недостатка места на диске
508 Loop Detected обнаружена петля Сервер не может обработать запрос из-за недостатка памяти
509 Bandwidth Limit Exceeded исчерпана пропускная ширина канала используется при превышении веб-площадкой отведённого ей ограничения на потребление трафика. В данном случае владельцу площадки следует обратиться к своему хостинг-провайдеру. В настоящий момент данный код не описан ни в одном RFC и используется только модулем «bw/limited», входящим в панель управления хостингом cPanel, где и был введён
510 Not Extended не расширено Сервер не может обработать запрос из-за того, что запрашиваемое расширение не поддерживается

Таблица 1.

 

Сообщения сервера на этом сайте

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

Ниже, в таблице 2, я привожу их с описаниями и долей в трафике всех сообщений.

 

Status-Code Статус количество доля % Примечание
404 Document Not Found 4044 53.3 % самая распространенная ошибка при пользовании Интернетом, основная причина — ошибка в написании адреса Web-страницы. Сервер понял запрос, но не нашёл соответствующего ресурса по указанному URI. Если серверу известно, что по этому адресу был документ, то ему желательно использовать код 410. Ответ 404 может использоваться вместо 403, если требуется тщательно скрыть от посторонних глаз определённые ресурсы.
403 Forbidden 1654 21.8 % сервер понял запрос, но он отказывается его выполнять из-за ограничений в доступе для клиента к указанному ресурсу. Если для доступа к ресурсу требуется аутентификация средствами HTTP, то сервер вернёт ответ 401 или 407 при использовании прокси. В противном случае ограничения были заданы администратором сервера или разработчиком веб-приложения и могут быть любыми в зависимости от возможностей используемого программного обеспечения. В любом случае клиенту следует сообщить причины отказа в обработке запроса. Наиболее вероятными причинами ограничения может послужить попытка доступа к системным ресурсам веб-сервера (например, файлам .htaccess или .htpasswd) или к файлам, доступ к которым был закрыт с помощью конфигурационных файлов, требование аутентификации не средствами HTTP, например, для доступа к системе управления содержимым или разделу для зарегистрированных пользователей либо сервер не удовлетворён IP-адресом клиента, например, при блокировках.
206 Partial Content 1208 15.9 сервер удачно выполнил частичный GET-запрос, возвратив только часть сообщения. В заголовке Content-Range сервер указывает байтовые диапазоны содержимого. Особое внимание при работе с подобными ответами следует уделить кэшированию.
302 Moved temporarily (redirect) 571 7.5 запрошенный документ временно доступен по другому URI, указанному в заголовке в поле Location. Этот код может быть использован, например, при управляемом сервером согласовании содержимого. Некоторые клиенты некорректно ведут себя при обработке данного кода.
405 Method not allowed 70 0.9 указанный клиентом метод нельзя применить к текущему ресурсу. В ответе сервер должен указать доступные методы в заголовке Allow, разделив их запятой. Эту ошибку сервер должен возвращать, если метод ему известен, но он не применим именно к указанному в запросе ресурсу, если же указанный метод не применим на всём сервере, то клиенту нужно вернуть код 501.
301 Moved permanently (redirect) 35 0.4 запрошенный документ был окончательно перенесен на новый URI, указанный в поле Location заголовка. Некоторые клиенты некорректно ведут себя при обработке данного кода.
412 Precondition failed 1 0 возвращается, если ни одно из условных полей заголовка[неизвестный термин] запроса не было выполнено.
Итого сообщений 7583 из 345246 просмотров

Таблица 2.

 

Как обстоят дела с ошибками на сайте

Для сбора статистики по сайту на хостинге установлена программа  AwStats.

 

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

 

AwStats  в отчете создает подборку отчетов по ошибкам (404-56.2 %, 302-39.2 %, 206-1.8 %, 405-0.9 %, 403-0.8 %, 301-0.7 %, 416-1-0 %, 406-1-0 %), а по ошибке 404 выдается полная подборка обращений.

 

Впечатляет и настораживает множество таких сообщений полученных в течении месяца.

 

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

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

Получается ошибки 404 это ошибка набора адреса.

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

Об этом же говорит и сообщение об ошибке 403:

 

сервер понял запрос, но он отказывается его выполнять из-за ограничений в доступе для клиента к указанному ресурсу.
Если для доступа к ресурсу требуется аутентификация средствами HTTP, то сервер вернёт ответ 401 или 407 при использовании прокси.
В противном случае ограничения были заданы администратором сервера или разработчиком веб - приложения и могут быть любыми в зависимости от возможностей используемого программного обеспечения. В любом случае клиенту следует сообщить причины отказа в обработке запроса.
Наиболее вероятными причинами ограничения может послужить попытка доступа к системным ресурсам веб-сервера (например, файлам .htaccess или .htpasswd) или к файлам, доступ к которым был закрыт с помощью конфигурационных файлов, требование аутентификации не средствами HTTP, например, для доступа к системе управления содержимым или разделу для зарегистрированных пользователей, либо сервер не удовлетворён IP-адресом клиента, например, при блокировках.

 

Наличие преднамеренных искажений запроса к серверу подтверждает и большое количество сообщений сервера 403.

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

И только около 20% сообщений сервера можно отнести (с некоторыми оговорками) к работе сервера провайдера (206), браузера клиента.

 

Заключение

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

А.Сорокин. 2013

Яндекс.Метрика

<<назад>> <<в начало>> <<на главную>>

Попасть прямо в разделы сайта можно здесь:

При полном или частичном использовании материалов ссылка на "www.electrosad.ru" обязательна.
Ваши замечания, предложения, вопросы можно отправить автору через
гостевую книгу или
почтой.

Copyright © Sorokin A.D.©

2002-2012 год