HTTP 404
HTTP 404 Not Found (Не знайдено, Помилка 404) — повідомлення про помилку в списку кодів стандартних відповідей HTTP-сервера, яке означає, що сервер не може знайти того, чого вимагає запит від клієнта, хоча контакт з сервером установлено. Здебільшого це повідомлення з'являється у вікні браузера тоді, коли неправильно вказана назва веб-сторінки, яку бажає побачити користувач.
При використанні протоколу HTTP сервер зобов'язаний відповісти на запит про веб-сторінку цифровим кодом і часто, ще й текстовим повідомленням.
Вебсервери зазвичай можна налаштувати таким чином, щоб замість стандартного HTTP 404 вони видавали інше, природніше для людини повідомлення, або переправляли користувача на сторінку пошуку[1].
Огляд
При зв'язку по HTTP клієнт потребує відповіді на свій запит серверу. Наприклад, веб-браузер запитує HTML-документ (веб-сторінку) та очікує цифровий код відповіді та, не завжди обов'язково, повідомлення. У коді 404 перша цифра означає помилку клієнта, наприклад, неправильний URL. Наступні дві цифри пояснюють природу помилки. Така поведінка HTTP аналогічна протоколам, що виникли раніше, наприклад FTP або NNTP.
В протоколі HTTP за кодом 404 слідує зрозуміле для людини «пояснення». Специфікація HTTP рекомендує фразу «Not Found»[2] (не знайдено) і веб-сервери часто генерують веб-сторінку, на якій відображається як код 404, так і фраза «Not Found».
Помилка 404 часто відтворюється, коли сторінку перемістили чи видалили, або назва файлу в коді та на сервері та збігаються. У першому випадку, краще повернути клієнту код 301 Moved Permanently, що можна налаштувати в конфігурації більшості серверів, або створити перенаправлення на інший URL. У другому випадку, краще повернути код 410 Gone. Однак, оскільки ці два варіанти потребують спеціального налаштування сервера, більшість вебсайтів не використовують їх.
Помилку 404 не варто плутати з помилкою DNS, яка з'являється, коли даний URL посилається на назву сервера, що не існує. Помилка 404 означає, що сам сервер знайдено, але не можливо знайти сторінку, що запитується.
Користувацькі сторінки помилок
Веб сервер зазвичай може бути налаштований на відображення сторінки помилки зі зрозумілішим описом, вона може бути оформленою в стилі батьківського сайту чи містити форму пошуку. Фразу, що йде на рівні протоколу, приховану від користувача, рідко змінюють.
Однак, не варто показувати користувацькі помилки об'ємом менш ніж 512 байтів, оскільки деякі браузери, наприклад, Internet Explorer чи Google Chrome, замість інформації, що надійшла, відображатимуть свою сторінку помилки. Також у випадку, якщо сторінка не надає іконку (клієнт зазвичай в автоматичному режимі її запитує), а відповідь сервера містить користувацький варіант сторінки, то це призведе до додаткового трафіку та підвищення часу завантаження[3][4].
Окремі компанії роблять «пасхальні яйця» на сторінці 404. Наприклад, «Пежо» зображав на сторінці машину Peugeot 404, а сторінка 404 веб-студії «Протеус» стала відомою за зображення молдовських веб-гастарбайтерів. Відтак студія зникла, а сторінку залишили.
Приклад
Запит клієнта.
GET /PageList.html HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
Host: uk.wikipedia.org
Accept-Language: ua-uk
Accept-Encoding: gzip, deflate
Connection: Keep-Alive
Відповідь сервера, що запрошеної сторінки не знайдено.
HTTP/1.1 404 Not Found
Date: Sun, 18 Oct 2012 10:36:20 GMT
Server: Apache/2.2.14 (Win32)
Content-Length: 230
Content-Type: text/html; charset=iso-8859-1
Connection: Closed
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html>
<head>
<title>404 Not Found</title>
</head>
<body>
<h1>Not Found</h1>
<p>The requested URL /PageList.html was not found on this server.</p>
</body>
</html>
Помилкове використання помилки 404
Деякі вебсайти замість «не знайдено» повертають стандартну сторінку з кодом «200 OK», це відомо як м'яка помилка 404. М'який 404 є проблемою для автоматизованих методів аналізу працеспроможності посилання. Деякі пошукові системи, як-от Yahoo, використовують автоматизовані процеси для виявлення м'яких 404[5]. М'який 404 може виникнути унаслідок помилки конфігурації певного серверного програмного забезпечення. Наприклад, на веб-сервері Apache, коли шлях до файлу з помилкою 404 (вказаний в .htaccess) визначається як абсолютний (наприклад, http://example.com/error.html), а не відносний (/error.html).[6]
Деякі проксі-сервери генерують помилку 404, коли не знаходять хост, замість того, щоб повернути код із діапазону 500-х помилок. Це може збити з пантелику програми, які діють на базі отриманих відповідей, адже вони вже не можуть легко розрізнити відсутність веб-сервера та відсутність веб-сторінки на веб-сервері.
У липні 2004 року телекомунікаційний провайдер Великої Британії BT Group розгорнув систему блокування контенту Cleanfeed, яка повертає помилку 404 на будь-який запит на інформацію, зміст якої визначений Internet Watch Foundation як потенційно незаконний[7]. Інші провайдери за цієї ж ситуації повертають статус HTTP 403 «Заборонено»[8]. Практика використання хибних помилок 404 як цензурний метод теж були зареєстровані в Таїланді[9] та Тунісі[10]. У Тунісі, де цензура є особливо сильною, громадськість створила персонажа з ім'ям «Аммар 404», який представляє «невидимого цензора»[11].
У культурі
2008 року телекомунікаційний відділ Пост офіс провели дослідження[12] та виявили, що «404» на слензі став синонімом слову «неосвічений» у Великій Британії. Сленг-лексикограф Джонатон Грін висловив думку, що «404», як сленгова назва був обумовлений «впливом технологій» в молодіжних компаніях, водночас використання обмежується Лондоном і низкою інших міст[12].
«На честь» помилки 404 названо японську музичну групу 404NOTFOUND, а також російський громадський інтернет-проєкт підтримки підлітків із гомосексуальними нахилами — Діти-404.
Віджети
Хоч багато сайтів надсилають додаткову інформацію в повідомленні про помилку 404, такі як посилання на головну сторінку вебсайту чи форма пошуку, існують набагато складніші реалізації, які намагаються знайти правильну адресу веб-сторінки, яку запитував користувач[13].
Див. також
Примітки
- (англ.)Custom Error Responses:Apache
- 6.1.1 Status Code and Reason Phrase. Архів оригіналу за 17 лютого 2012. Процитовано 22 червня 2008.
- Heng, Christopher (7 сентября 2008). Что такое Favicon.ico и как создать иконку для своего вэб-сайта. thesitewizard.com. Архів оригіналу за 8 лютого 2012. Процитовано 23 февраля 2011.
- Cole, Linda (3 август 1999). Ошибка подлый "favicon.ico не найден". Виртуальная библиотека вэб-разработчика. QuinStreet. Архів оригіналу за 17 лютого 2012. Процитовано 25 февраля 2011.
- Почему пауки постоянно запрашивают странные URL, которые никогда не существовали на моём сайте?. Yahoo Web Crawler Help page. Архів оригіналу за 17 лютого 2012. Процитовано 4 октября 2009.
- Прощание с мягким 404s. Google Official Blog. Архів оригіналу за 17 лютого 2012. Процитовано 20 сентября 2008.
- LINX Public Affairs » Cleanfeed: факты. Publicaffairs.linx.net. 10 сентября 2004. Архів оригіналу за 13 травень 2011. Процитовано 6 март 2011.
- «DEMON — Error 403»[недоступне посилання з лютого 2019]
- Sambandaraksa, Don (18 февраля 2009). The old fake '404 Not Found' routine. Бангкок Пост. Процитовано 12 сентября 2010.
- Noman, Helmi (12 сентября 2008). Тунисский журналист подал в суд на правительство за блокировку Facebook, за нанесённый ущерб при использовании ошибки 404 вместо 403. Open Net Initiative. Архів оригіналу за 17 лютого 2012. Процитовано 21 ноября 2010.
- Движение против цензуры в Тунисе: творчество, мужество и надежда!. Global Voices Advocacy. 27 мая 2010. Архів оригіналу за 17 лютого 2012. Процитовано 28 августа 2010.
- Не быть 404, знать техносленг. BBC News Online. 10 декабря 2008. Процитовано 13 декабря 2008.
- Swenson, Sahala (19 августа 2008). Сделайте вашу страницу 404 более полезной. Official Google Webmaster Central Blog. Google, Inc. Архів оригіналу за 17 лютого 2012. Процитовано 28 августа 2009.