Открыть сервис

HTTP-статус-код 404

404 (англ. Not Found — «не найдено») — это стандартный код состояния HTTP, который сервер отправляет клиенту (например, браузеру) в ответ на запрос, когда запрашиваемый ресурс (веб-страница, файл, изображение, API-эндпоинт) не может быть найден на сервере. Код 404 относится к классу 4xx («Ошибка клиента») и является одним из наиболее распространённых и узнаваемых HTTP-статус-кодов в интернете.

История

Протокол HTTP (Hypertext Transfer Protocol) был разработан в начале 1990-х годов Тимом Бернерсом-Ли в ЦЕРНе. Первая спецификация HTTP/0.9 (1991 год) не предусматривала кодов состояния — сервер просто передавал запрошенные данные или разрывал соединение. С появлением HTTP/1.0, описанного в RFC 1945 (1996 год), была введена система трёхзначных кодов состояния, заимствованная из протокола FTP. Код 404 появился именно в этой версии.

Точное происхождение числа «404» не имеет официального объяснения, но существует несколько версий. Наиболее распространённая легенда гласит, что в ЦЕРНе комната 404 была серверной, где хранились данные, и при их отсутствии операторы сообщали: «Room 404: data not found». Эта история не подтверждена документально. Реалистичнее выглядит версия, что цифры были выбраны произвольно: класс 4xx зарезервирован для ошибок клиента, а 04 — просто следующий свободный номер в этом диапазоне после стандартных кодов (например, 400 Bad Request, 401 Unauthorized, 403 Forbidden).

Синтаксис и механизм работы

При получении HTTP-запроса сервер анализирует URI (Uniform Resource Identifier). Если сервер не может сопоставить запрошенный URI ни с одним из существующих ресурсов (файлов, скриптов, виртуальных путей), он генерирует ответ с кодом 404. Ответ включает строку состояния:

`` HTTP/1.1 404 Not Found ``

За строкой состояния следуют заголовки (например, Content-Type, Content-Length) и, опционально, тело ответа. Тело обычно содержит HTML-страницу с сообщением об ошибке, часто стилизованную под дизайн сайта. Сервер может также возвращать 404 в других форматах (JSON, XML, plain text) в зависимости от типа запроса.

Важно понимать, что код 404 не означает, что сервер не работает или что запрос был некорректным с точки зрения синтаксиса — это именно указание на отсутствие ресурса по данному адресу. Сервер обязан обработать запрос и вернуть ответ, даже если ресурса нет.

Распространённые причины появления

  • Неверно набранный URL — опечатки пользователя в адресной строке браузера.
  • Устаревшие ссылки — страница была удалена или перемещена, а ссылки на неё не обновлены.
  • Сломанные внутренние ссылки — ошибки в коде сайта или в конфигурации сервера.
  • Изменение структуры сайта — редизайн или миграция на новую CMS без настройки перенаправлений (редиректов).
  • Отсутствующие файлыудаление изображений, PDF-документов, скриптов без обновления ссылок.
  • Блокировка доступа — в некоторых случаях сервер может намеренно возвращать 404 вместо 403 (Forbidden) для скрытия существования ресурса (принцип безопасности «security through obscurity»).

Разновидности и связанные коды

В спецификации HTTP предусмотрены несколько вариантов кода 404:

  • 404 Not Found — стандартный код, описанный выше.
  • 404.0 — используется в Microsoft IIS для обозначения «Not Found» на уровне файловой системы.
  • 404.1 — «Site Not Found» (IIS) — запрошенный веб-сайт не существует на сервере.
  • 404.2 — «ISAPI or CGI restriction» (IIS) — запрос к запрещённому расширению.
  • 404.3 — «MIME type restriction» (IIS) — запрос к типу MIME, который не настроен.

В некоторых API и фреймворках могут использоваться расширенные коды, например, 404.10 (IIS) — «Request header too long».

Значение для SEO и пользовательского опыта

Код 404 имеет прямое влияние на поисковую оптимизацию (SEO). Поисковые системы, такие как Яндекс и Google, при обнаружении большого количества страниц с кодом 404 на сайте могут снизить его позиции в выдаче, так как это свидетельствует о низком качестве ресурса и плохом пользовательском опыте. Рекомендуется:

  • Настраивать редиректы 301 (постоянное перенаправление) со старых адресов на новые при изменении структуры.
  • Использовать кастомные страницы 404, которые помогают пользователю найти нужную информацию (поиск, карта сайта, ссылки на главную).
  • Регулярно проверять сайт на битые ссылки с помощью инструментов веб-мастера (например, Яндекс.Вебмастер, Google Search Console).

Кастомные страницы 404 часто содержат юмористический или креативный контент, чтобы смягчить негативное впечатление пользователя. Например, на сайте GitHub отображается изображение космонавта, а на сайте Lego — человечек, потерявший деталь.

Культурное влияние

Код 404 вышел за пределы технической сферы и стал частью интернет-культуры. Выражение «404 error» используется в разговорной речи для обозначения отсутствия чего-либо или непонимания (например, «у меня 404 в голове»). Существуют мемы, шутки, а также названия компаний и продуктов, содержащие «404» (например, игра «404 Game: ReSET»). В 2011 году в Берлине был открыт отель «404 Hostel», оформленный в стиле интернет-ошибок.

В русскоязычном сегменте интернета также распространены креативные страницы 404. Например, на сайте «Лента.ру» долгое время отображалось изображение кота с подписью «Ошибка 404. Кот не найден». На сайте «Яндекс» страница 404 содержит ссылку на поиск и изображение робота.

Критика и альтернативы

Некоторые специалисты критикуют использование кода 404 по умолчанию в ситуациях, когда ресурс был удалён намеренно. В таких случаях более корректным считается возврат кода 410 Gone, который явно указывает, что ресурс существовал, но был удалён без возможности восстановления. Однако на практике код 410 используется реже, так как требует дополнительной настройки сервера и не поддерживается некоторыми старыми браузерами.

Также существует практика «мягких 404» (soft 404), когда сервер возвращает код 200 (OK) вместе со страницей, содержащей сообщение об ошибке. Это считается плохой практикой, так как вводит в заблуждение поисковые системы и пользователей. Поисковые системы могут наложить санкции за мягкие 404.

Источники

  • RFC 7231 — Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content, раздел 6.5.4
  • RFC 1945 — Hypertext Transfer Protocol — HTTP/1.0
  • Документация Microsoft IIS — коды ошибок HTTP
  • Материалы Google Search Central — «404 pages and soft 404 errors»
  • Статья «HTTP 404» в английской Википедии (версия от 2023 года)

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →