404

Not Found

Официален Кодове на подстатуси
Уеб сървърът не може да намери заявения ресурс

Общо обяснение на код на състоянието 404

Кодът на състоянието 404 Not Found означава, че сървърът не е успял да намери ресурс под посочения URL адрес. Това съобщение е най-известното съобщение за грешка дори сред нетехническите потребители, тъй като дори големите уебсайтове имат строги структури от връзки и съобщението за грешка 404 Not Found се хвърля по-често.

Спецификация на HTTP код на състоянието 404

Кодът на състоянието 404 Not Found показва, че сървърът на произхода не е намерил актуално представяне на целевия ресурс или не желае да разкрие съществуването на такова. Кодът на състоянието 404 Not Found не показва дали това липсващо представяне е временно или постоянно; кодът на състоянието 410 (Отпаднал) е за предпочитане пред 404 Not Found, ако сървърът на произхода знае, вероятно чрез някакви конфигурируеми средства, че състоянието вероятно ще бъде постоянно. Отговорът 404 Not Found може да се кешира по подразбиране, т.е. освен ако дефиницията на метода или изричните контроли на кеширането не показват друго (вж. раздел 4.2.2 на [RFC7234]).

Източник / Цитат от: Кодът на състоянието 404 Not Found на HTTP е определен в раздел 6.5.4. на RFC7231.

Как да изхвърлим код на състоянието 404 с PHP?

За изхвърляне на HTTP статус код 404 на уеб страница може да се използва функцията http_response_code на PHP. Синтаксисът е следният: http_response_code(404) (PHP 5 >= 5.4.0, PHP 7, PHP 8)

Тестване на код 404 на състоянието HTTP

За да можете да показвате кода на състоянието на HTTP (в този случай 404 Not Found) и друга информация от страна на клиента, конзолата за разработка трябва да се отвори с F12. След това преминете към раздела "Мрежа". Сега страницата може да бъде отворена, като уебсайтът (пример index.php) трябва да се вижда в раздела "Мрежа". Той трябва да бъде избран и след това трябва да се избере разделът Herder. След това потребителят ще види следния резултат:

Код на състоянието 404 Not Found
Преглед
URL: https://http-statuscode.com/errorCodeExample.php?code=404
Статус: 404 Not Found
Тези: Network
IP адрес: XX.XX.XX.XX
Код на състоянието 404 Not Found

Как да разреша проблема със статус код 404?

Код на състоянието 404 Not Found може да се появи по различни причини. Някои от тях са тривиални, други са по-сложни. Най-вероятната причина е, че URL адресът е бил погрешно изписан или връзката към вътрешна страница е била зададена неправилно. Друга възможност е свързаната страница да е била изтрита от уеб сървъра и да не е бил зададен последващ код на състоянието, например 410 (изчезнал).

Но може да има и малко по-сложен модел на грешка. Ако е сигурно, че нито URL адресът е изписан погрешно, нито ресурсът е бил изтрит, пренасочването от файла "htaccess" също може да е погрешно. Дефектните пренасочвания често могат да бъдат открити с уеб инструменти.

Като последна вероятна възможност може да се разгледа и проблем с кеширането. Или проблемът вече е решен от страна на сървъра, но кешът на браузъра не презарежда страницата, а от локалната памет, или уеб сървърът също не зарежда актуалната версия. В този случай кешът трябва да бъде изчистен както от страна на клиента, така и от страна на сървъра.

Как да създадете собствена страница за грешка с код на състоянието 404

Създаването на собствена страница за грешка 404 Not Found е сравнително лесно както с уеб сървърите "Apache", така и с "NGINX".

Apache Webserver

Уеб сървърът "Apache" е един от най-разпространените уеб сървъри в интернет. За да създадете своя собствена страница за грешка 404 Not Found в "Apache", трябва да се направи следната промяна в следния файл.

File: .htaccess
ErrorDocument 404 /errors/404.html

NGINX Webserver

Подобно на уеб сървъра "Apache", "NGINX" също се използва широко в интернет. За да създадете своя собствена страница за грешка 404 Not Found в "NGINX", трябва да се направи следната промяна в следния файл.

File: sites-enabled/default
error_page 404 /404.html;
location = /404.html {
    root /usr/share/nginx/html;
    internal;
}

Съвместимост на кода на състоянието 404 с браузъра

Chrome Yes
Edge Yes
Firefox Yes
Opera Yes
Safari Yes
Chrome Android Yes
Firefox for Android Yes
Opera Android Yes
Safari on iOS Yes
Internet Yes
WebView Android Yes

Какъв ефект върху SEO има кодът на състоянието 404?

В света на оптимизацията за търсачки (SEO) кодът на състоянието 404 Not Found "Не е намерен" е нещо повече от обикновено съобщение за грешка. Той има реално и осезаемо въздействие върху начина, по който търсачките възприемат и оценяват даден уебсайт.

Когато потребител или търсачка се опита да получи достъп до страница, която не съществува, и по този начин върне грешка 404 Not Found, търсачките интерпретират това като несъществуваща страница. Една спорадична грешка 404 Not Found тук и там няма непременно да има драстичен ефект върху класирането в търсачките. Натрупването на такива грешки обаче може да сигнализира на търсачките, че уебсайтът не е добре поддържан или актуализиран.

Честата поява на грешки 404 Not Found може да се възприеме от търсачките като индикатор за лоша структура или поддръжка на уебсайта. Това от своя страна може да окаже отрицателно въздействие върху доверието, което търсачката има към уебсайта. А в света на SEO оптимизацията доверието е всичко. Уебсайт, който се ползва с доверието на търсачките, обикновено се класира по-добре в резултатите от търсенето.

Както вече споменахме, всеки уебсайт има бюджет за обхождане. Той се отнася до броя на страниците, които ще бъдат посетени от краулера на търсачката за даден период от време. Твърде многото грешки 404 Not Found могат да доведат до загуба на значителна част от този бюджет за несъществуващи страници. Това означава, че откриването и индексирането на ново или актуализирано съдържание от търсачките може да отнеме повече време.

Друг важен проблем е загубата на обратни връзки поради грешки 404 Not Found. Обратните връзки са важен фактор за класиране и ако външна страница се свърже с URL адрес, който връща грешка 404 Not Found, тази връзка вече няма да се счита за положителен фактор за класиране от търсачките.

В обобщение, въпреки че на пръв поглед грешките 404 Not Found могат да изглеждат безобидни, те могат да имат сериозно въздействие върху класирането на уебсайта в търсачките. Ето защо в интерес на уебмастъра е да следи и отстранява тези грешки редовно, за да гарантира, че уебсайтът поддържа възможно най-добрата си позиция в резултатите от търсенето.

Константи в езиците за програмиране

HttpStatusCode.NotFound
http.StatusNotFound
response::HTTP_NOT_FOUND
httplib.NOT_FOUND
http.client.NOT_FOUND
http.HTTPStatus.NOT_FOUND
:not_found

Пример за "Клиентска заявка" и "Отговор на сървъра" с HTTP код на състоянието 404

Client request:

GET /missingpage.php HTTP/1.1
Host: www.http-statuscode.com

Server response:

HTTP/1.1 404 Not Found
Content-Type: text/html

<html>
<head><title>404 Not Found</title></head>
<body>
<h1>Not Found</h1>
<p>The requested URL /missingpage.php was not found on this server.</p>
</body>
</html>

Кодове на подсъстоянието на код 404

Кодовете за подсъстояние са чисто технически и никога не трябва да се изпращат на потребителя. Например, ако бъде хвърлен код на състоянието 404.1, той може да бъде регистриран, но код на състоянието 404 ще бъде изпратен на потребителя.:
404.0 Not found
HTTP IIS, Неофициален
404.1 Site Not Found
HTTP IIS, Неофициален
404.2 ISAPI or CGI restriction.
HTTP IIS, Неофициален
404.3 MIME type restriction.
HTTP IIS, Неофициален
404.4 No handler configured
HTTP IIS, Неофициален
404.5 Denied by request filtering configuration
HTTP IIS, Неофициален
404.6 Verb denied
HTTP IIS, Неофициален
404.7 File extension denied
HTTP IIS, Неофициален
404.8 Hidden namespace
HTTP IIS, Неофициален
404.9 Files attribute hidden
HTTP IIS, Неофициален
404.10 Request header too long
HTTP IIS, Неофициален
404.11 Request contains double escape sequence
HTTP IIS, Неофициален
404.12 Request contains high-bit characters
HTTP IIS, Неофициален
404.13 Content length too large
HTTP IIS, Неофициален
404.14 Request URL too long
HTTP IIS, Неофициален
404.15 Query string too long
HTTP IIS, Неофициален
404.16 DAV request sent to the static file handler
HTTP IIS, Неофициален
404.17 Dynamic content mapped to the static file handler
HTTP IIS, Неофициален
404.18 Querystring sequence denied
HTTP IIS, Неофициален
404.19 Denied by filtering rule
HTP IIS, Неофициален
404.20 Too Many URL Segments
HTTP IIS, Неофициален
404.501 Too many requests from the same client IP; Dynamic IP Restriction Concurrent request rate limit reached
HTTP IIS, Неофициален
404.502 Too many requests from the same client IP; Dynamic IP Restriction Maximum request rate limit reached
HTTP IIS, Неофициален
404.503 the IP address is included in the Deny list of IP Restriction
HTTP ISS, Неофициален
404.504 the host name is included in the Deny list of IP Restriction
HTTP IIS, Неофициален

Статии в блога

Кодове на състоянието на HTTP: Подробен анализ на съобщенията за грешка 404 Not Found и 410 Gone

Кодовете за състояние на HTTP са съществена част от протокола за трансфер на хипертекст (HTTP), който е в основата на комуникацията между уеб браузърите и уеб сървърите. Те позволяват да се маркира...

SEO и кодове на състоянието на HTTP: Изчерпателен анализ

Оптимизирането на уебсайта за търсачките (SEO) е сложно начинание. Един от често пренебрегваните, но решаващи аспекти за доброто класиране са HTTP кодовете за статус. Тези малки, трицифрени кодове ...

Автор: Tony Brüser
Автор: Tony Brüser

Тони Брусер е ентусиазиран уеб разработчик със склонност към HTTP кодовете за състояние.

LinkedInGitHub