Кіріспе
Интернет қатесі хабарламасы
Компьютерлік желі байланыстарында HTTP 404, 404 табылмады, 404 қатесі, парақ табылмады немесе файл табылмады қатесі хабарламасы – гипермәтіндік беру протоколының (HTTP) стандартты жауап коды, шолғыш берілген сервермен байланыса алғанын, бірақ сервер сұралғанды таба алмағанын көрсету үшін қолданылады. Сервер сұралған ақпараттың бар-жоқтығын жариялағысы келмеген жағдайда да бұл қате пайда болуы мүмкін. Веб-сайтты хостингтік сервер әдетте пайдаланушы бұзылған немесе қолданысқа жарамсыз сілтемеге өтуге тырысқанда "404 табылмады" веб-бетін шығарады; сондықтан 404 қатесі – Дүниежүзілік желіде ең көп кездесетін қателердің бірі.
Шолу
HTTP арқылы байланыс жасағанда, сервер веб-браузердің веб-бет сұрауы сияқты сұранысқа сандық жауап кодымен және міндетті, қосымша немесе мәртебе кодына байланысты рұқсат етілмеген хабарламамен жауап беруі керек. 404 кодындағы бірінші цифр клиенттік қатеге нұсқайды, мысалы, дұрыс емес енгізілген Бірыңғай ресурс локаторы (URL). Келесі екі цифр кездескен нақты қате туралы мәлімет береді. HTTP-нің үш цифрлы кодтарды пайдалануы FTP және NNTP сияқты алдыңғы протоколдардағы кодтарды пайдалануға ұқсас. HTTP деңгейінде 404 жауап кодынан кейін адам оқи алатын «себеп фразасы» келеді. HTTP спецификациясы «Табылған жоқ» фразасын ұсынады. Ол сондай-ақ «400 Жаман сұрау» дегенді пайдалануды қарастырғанын, бірақ оның тым тұйық және техникалық екенін шешкенін айтты. Пайдаланушы қате туралы NCSA командасына хабарлаған, олар сілтемені түзетіп, 404 бетіне әзілді хабарлама қосты: «Кешіріңіз, бірақ сіз сұраған құжат мұнда жоқ. Сіз басқа жерді көріп көруіңіз мүмкін». GitHub-тің 404 беті параллакс жұлдызды аймақтың кездейсоқ суретін және оның мәртебелік бетіне сілтемені көрсетеді. Кейбір веб-сайттар өздерінің 404 беттерін брендтік имиджін, юморын немесе әлеуметтік мақсатын көрсету үшін пайдаланды. Мысалы, Lego-ның 404 беті Lego минифигурасы Эмметті күлкілі хабарламамен бірге көрсетеді, Amazon иттің суретін, Peugeot өзінің 404 моделінің суретін, ал RTÉ Bosco суретін көрсетеді.
404 қатесі
Кейбір веб-сайттар "200 OK" жауап кодымен стандартты веб-бетті қайтарады, осылайша "табылмайды" қатесін көрсетеді, бірақ беттің дұрыс жүктелгенін қате түрде хабарлайды; мұндай жағдай жұмсақ 404 деп аталады. "Жұмсақ 404" термині 2004 жылы Зив Бар Йосеф және авторлар тобы енгізген. Жұмсақ 404 сілтемелерді автоматты түрде бұзылғандығын анықтау әдістері үшін қиындық тудырады. Yahoo және Google сияқты кейбір іздеу жүйелері жұмсақ 404-терді анықтау үшін автоматты процестерді пайдаланады. Жұмсақ 404 қатесі кейбір HTTP серверлік бағдарламалық құралдарды пайдаланған кезде, мысалы Apache бағдарламалық құралын қолданғанда, конфигурациялық қателердің салдарынан туындауы мүмкін. Мысалы, htaccess файлында көрсетілген 404 қателік құжаты абсолютті жолмен (мысалы, http://example.com/error.html) салыстырмалы жолға (/error.html) қарағанда көрсетілген жағдайда. Бұл кейбір браузерлерді (Internet Explorer сияқты) браузерге арналған "достық" қате хабарламасын көрсетудің орнына, жеке 404 қате хабарламасын көрсетуге мәжбүрлеу үшін әдейі жасалуы мүмкін. (Internet Explorer-де бұл әрекет 404 қателік қызмет етілгенде және алынған HTML белгілі бір ұзындықтан қысқа болғанда іске қосылады және пайдаланушы оны қолмен өшіре алады). Сондай-ақ, "жеңіл 3XX" қателері де болады, онда мазмұн 200 статусымен қайтарылады, бірақ ол қайта бағытталған беттен алынған, мысалы, жоғалған беттер доменнің түбірлік/бас бетіне қайта бағытталған кезде.
Прокси-серверлер
Кейбір прокси-серверлер 500 диапазонындағы қате коды дұрыс болғанда 404 қатесін шығарады. Егер прокси-сервер қашықтағы хостпен байланыста проблемалар туындаса (мысалы, хост атын анықтаудағы қателер немесе TCP қосылымын қабылдамау), бетке жасалған сұранысты орындай алмаса, бұл 5xx Ішкі сервер қатесі ретінде көрсетілуі керек, бірақ оның орнына 404 қатесі берілуі мүмкін. Бұл белгілі жауаптарды күтетін және оларға сәйкес әрекет ететін бағдарламаларды шатастырады, себебі олар енді жұмыс ілемейтін веб-серверді және жұмыс істейтін веб-сервердегі жоқ бетті оңай ажырата алмайды.
Қасақана 404 сілтемелері
2004 жылдың шілдесінде Ұлыбританияның BT Group телекоммуникациялық операторы Cleanfeed контентті блоктау жүйесін енгізді, ол Интернет күзет қоры анықтаған әлеуетті заңсыз контентке кез келген сұранысқа 404 қатесін қайтарады. Басқа интернет-провайдерлер осы жағдайда HTTP 403 "рұқсат етілмейді" қатесін қайтарады. Цензураны жасыру үшін жалған 404 қателерін пайдалану Таиланд және Тунис елдерінде де хабарланды. Тунисте, 2011 жылғы төңкеріске дейін цензура қатаң болғандықтан, адамдар жалған 404 қателерінің мәнін біліп, "көрінбейтін цензураны" бейнелейтін "Аммар 404" атты ойдан туған кейіпкерді жасады.
Microsoft Internet Server 404 қателік кодының қосымша күй-жайы
Microsoft компаниясы әзірлеген веб-сервер бағдарламалық құралы, Microsoft Internet Information Services (IIS), 404 жауаптарымен бірге қосалқы статус кодтарының жиынтығын қайтарады. Бұл қосалқы кодтар 404 статус кодына ондық сандар түрінде қосымша беріледі. IANA бұл қосалқы кодтарды ресми түрде мойындамайды және Microsoft емес серверлер оларды қайтармайды.
Қосалқы мәртебе кодтары
Microsoft-тың IIS 7.0, IIS 7.5 және IIS 8.0 серверлері 404 қатесінің нақты себебін көрсету үшін келесі HTTP субстатус кодтарын анықтайды:
404.0 – Табылмайды. 404.1 – Сайт табылмайды. 404.2 – ISAPI немесе CGI шектеуі. 404.3 – MIME түрі бойынша шектеу. 404.4 – Обработчик (handler) конфигурацияланбаған. 404.5 – Сұранысты сүзгілеу конфигурациясы бойынша қабылданбады. 404.6 – Сұранысқа рұқсат берілмеді (Verb denied). 404.7 – Файл кеңейтуіне рұқсат етілмеген. 404.8 – Жасырын атау кеңістігі. 404.9 – Файл атрибуты жасырылған. 404.10 – Сұраныс тақырыбы тым ұзын. 404.11 – Сұраныс екі рет эскейптелген тізбекті қамтиды. 404.12 – Сұраныста жоғары биттік таңбалар бар. 404.13 – Мазмұнның ұзындығы тым үлкен. 404.14 – URL мекенжайы тым ұзын. 404.15 – Сұрау жолы (query string) тым ұзын. 404.16 – Статикалық файлды өңдеушіге жіберілген DAV сұранысы. 404.17 – Динамикалық мазмұн, жолдама MIME картасы арқылы статикалық файлды өңдеушіге сәйкестендірілген. 404.18 – Сұрау жолы тізбегі қабылданбады. 404.19 – Сүзгілеу ережесі бойынша қабылданбады. 404.20 – URL сегменттерінің саны көп.
Өзіндік қате парақтары
Веб-серверлер әдетте жекешелендірілген 404 қате парақты көрсету үшін конфигурацияланады, оның ішінде нақтырақ сипаттама, негізгі сайттың бренді, кейде сайт картасы, іздеу нысаны немесе 404 парағына арналған виджет болады. Пайдаланушыдан жасырылған протокол деңгейіндегі фраза сирек өзгертіледі. Дегенмен, Internet Explorer 512 байттан үлкен болмаған жағдайда жекешелендірілген парақты көрсетпейді, оның орнына «достық» қате парақты таңдайды. Google Chrome да ұқсас мүмкіндіктерді ұсынады, егер парақтың көлемі 512 байттан кем болса, 404 орнына Google алгоритмдерімен жасалған басқа ұсыныстар көрсетіледі. Тағы бір мәселе – егер парақта фавикон болмаса және жеке 404 парағы болса, әрбір бетті қарау кезінде қосымша трафик пен ұзақ жүктелу уақыты туындайды. Көптеген ұйымдар 404 қате парағын әдеттегі жағдайда маңызды веб-сайтқа әзіл қосу мүмкіндігі ретінде пайдаланады. Мысалы, Metro UK скейтбордта ақ аюды көрсетеді, ал веб-дамыту агенттігі Left Logic қарапайым сурет салу бағдарламасын ұсынады. 2015 жылғы Ұлыбританиядағы жалпы сайлау науқанында басты саяси партиялардың барлығы өздерінің 404 беттерін саяси қарсыластарына шабуыл жасау немесе әлеуетті қолдаушыларға қатысты саясатты көрсету үшін пайдаланды. Еуропада NotFound жобасы, Missing Children Europe және Child Focus сияқты бірнеше еуропалық ұйымдар сайт операторларын жоғалған балалар туралы ақпарат беретін жекешелендірілген 404 қате парақтарын көрсету үшін код фрагментін қосуға шақырады. Көптеген веб-сайттар 404 қате хабарламасында қосымша ақпарат жібереді, мысалы, веб-сайттың бас бетіне немесе іздеу өрісіне сілтеме, ал кейбіреулері пайдаланушы іздеген дұрыс веб-бетті табуға тырысады. Мұндай мүмкіндіктерді іске асыру үшін кейбір контентті басқару жүйелеріне (CMS) арналған кеңейтулер бар.
404 қателерді қадағалау
Сайтты аралап, 404 кодымен қайтаратын беттерді табуға арналған бірнеше құрал бар. Бұл құралдар белгілі бір веб-сайт ішіндегі сілтемелерді табуға көмектеседі. Осы құралдардың шектеуі – олар тек бір веб-сайттың ішіндегі сілтемелерді ғана табады және басқа веб-сайттардағы сілтемелерден туындаған 404 қателерін ескермейді. Осының салдарынан, бұл құралдар веб-сайттардағы 404 қателердің 83% -ын жіберіп алады. Осы мәселенің шешімі – сыртқы сілтемелерді талдау арқылы 404 қателерді анықтау. 404 қателерді анықтаудың ең тиімді жолдарының бірі – Google Search Console, Google Analytics немесе шолу бағдарламалық құралын пайдалану. Тағы бір көп қолданылатын әдіс – журналдық файлдарды талдау арқылы 404 беттерге трафик ағынын қадағалау. Бұл пайдаланушылардың сайтта қандай 404 беттерге жеткенін түсінуге көмектеседі. 404 беттерге трафик ағынын қадағалаудың тағы бір жолы – JavaScript негізіндегі трафик қадағалау құралдарын қолдану.