Дмитрий Соломенников
Мастер
(1011)
6 лет назад
Статус "404" в стандарте интернета (STD) используется веб-сервером для уведомления клиента об отсутствии запрашиваемого ресурса, который тот передал с помощью пути (path). Обычно пользователи используют термин "URL" или "ссылка", когда имеется ввиду path ресурса на веб-сервере.
В интернете очень часто встречается ситуация, когда что-то удаляют, на что уже размещена ссылка, или переименовывают с изменением ссылки, пользователи почти всегда видят ошибки под кодом 404 или 502/503.
Коды для этих и других статусов были предложены в результате работы организаций ISOC и IETF, целью которой была разработка стандарта для протокола HTTP (hyper-text transfer protocol). Это документ, регламентирующий работу большей части современных веб-браузеров, веб-клиентов, веб-серверов, веб-приложений и веб-парсеров и много чего еще. Благодаря таким документам, разработчики по всему миру могут разрабатывать совместимое и не конфликтующее с действующими нормами программное обеспечение.
Согласно протоколу HTTP (описан в RFC 7231), веб-клиент, подключающийся к веб-серверу, передает в качестве пути (path) идентификатор ресурса или файла, который хочет получить. Если, например, на сервере отсутствует привязанный к такому пути ресурс, сервер возвращает ошибку 404, то есть передает в качестве статуса (status code) "404". В случае, если ресурс обнаружен, сервер передает его содержимое, устанавливая в качестве статуса "200 (Success)", что происходит чаще всего.
Роль всех этих статусов в том, что по ним веб-клиент определяет, как обработать поток данных, который поступает в качестве ответа от веб-сервера. В некоторых случаях сервер (кроме статуса с ошибкой) не передает никакой "заглушки", и вы увидите очень простое сообщение, сгенерированое вашим браузером. Хотя иногда сайт может содержать довольно интересную заглушку, которая сообщит о проблеме.
Почему именно 404, а не 798, или не 150? Потому что в качестве первой цифры статуса выступает класс этого статуса, и только затем код. Всего есть 5 классов (см. список статусов HTTP):
1xx Informational (Информационные)
2xx Success (Успех)
3xx Redirection (Редиректы)
4xx Client Error (Ошибки клиента)
5xx Server Error (Серверные ошибки)
404, стало быть, ошибка клиента (веб-браузера или пользователя). Есть и другие статусы, например, когда на сервере что-то поломалось, вы увидите статусы пятого класса, типа 503.
coder
Мыслитель
(5325)
6 лет назад
Ошибка 404 - ресурс не найден, нет нигде такой страницы/файла, на серваке его его/её нетуу, отсутствует, чтобы ты зашёл на страницу, браузер должен её загрузить к себе (скачать типа), а загружать нечега.