https://blog.superhosting.bg/http-status-codes.html

Натиснете ENTER, за да видите резултатите или ESC за изход.

Грешка (404, 500, 301) или пък не?

2017-08-21
Технологии
http статус кодове, грешка на сайта, статус кодове, error, 404 not found

Какво правите обикновено, когато получите съобщение за грешка от някой сайт? Насочвате поглед към Х бутона на таба на браузъра или прочитате съобщението? Ако просто затваряте сайта, то най-вероятно това не е вашият сайт. 🙂 Тези съобщения всъщност носят много информация. Ето защо решихме да хвърлим повече светлина върху различните видове, с които всички сме се сблъсквали при неуспешен опит да заредим някой сайт.

Съобщенията за грешка, които се появяват на сайтовете, понякога съдържат издайнически код в текста си, например error 500, not found 404 и други. Тези кодове се наричат още HTTP статус кодове и се използват от уеб сървъра, за да информират клиента за успешна или неуспешна обработка на неговата заявка и не винаги означават съобщение за „грешка“.

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

  • 1хх : Информационни
  • 2хх : Успешни
  • 3хх : Пренасочване
  • 4хх : Грешка при Клиента
  • 5хх : Грешка при Сървъра
HINT:
Aко в съобщението за грешка се съдържа статус код, започващ с 4xx, това означава, че има нещо нередно с вашата заявка към сайта, а не че той в момента не работи. Ако пък съобщението за грешка съдържа код 500 и това е вашият сайт, тогава можете да го затворите спокойно и да прегледате нашата статия: 3 съвета за справяне с Internal Server Error 500.

Пълен списък на HTTP статус кодовете може да се види на страницата на официалния регистър на HTTP Status Codes – IANA: HTTP Status Codes.

Ето кои са най-често срещаните статус кодове и какво трябва да направим, ако се сблъскаме с някой от тях:

HTTP 500 Internal Server Error

Оказва се, че съобщението „грешка 500“ или „Internal Server Error 500“ е повод доста хора да посещават нашия Блог и едноименната статия по въпроса 🙂 (или да пишат до СуперПоддръжката). Затова ще започнем с този статус код.

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

  • Определена настройка на сървъра, за запазване и поддържане на оперативността му, влиза в противоречие с некоректно изпълняващ се процес.
  • Приложението или части от него са написани или настроени неподходящо за системната среда или налични технологии на сървъра.
  • Вътрешни несъвместимости на технологиите, използвани от самото приложение, както и често срещаното – некоректен програмен код.

Ако получите съобщение „грешка 500“ на вашия сайт, първото нещо, което трябва да направите, е да погледнете логовете на уеб сървъра. Много често в тях се съдържа информация за грешката, а най-честата причина са некоректните права.

HTTP 404 Not Found

404 Not Found или само Not Found „The requested URL /resource was not found on this server“.

Да, сигурни сме, че и вие сте виждали това съобщение. И то не веднъж. Това съобщение се връща от уеб сървъра, когато не успее да открие ресурса, посочен в заявката на клиента. Например ако от сайта е изтрит файл, директория или картинка при опит за зареждане на уеб адреса й, уеб сървърът ще върне съобщение 404 Not Found. Най-честите причини за съобщение 404 Not Found са:

  • грешно изписан уеб адрес на ресурса;
  • използван е bookmark, който е с неактуален url адрес;
  • кликнат е линк от резултатите в търсачката, който вече не е актуален;
  • достъпен е линк в самото съдържание на сайта, който вече не работи.

Ако все пак искате да получите някаква информация от посещавания сайт, просто изтрийте частта на въведения адрес в браузъра, докато не остане само домейнът на сайта. Например ако сте въвели http://mysupersite.com/dir/image.png и сте получили 404 Not Found, може да изтриете частта след http://mysupersite.com.

HTTP 403 Forbidden

Ако получите 403 Forbidden, това означава, че уеб достъпът до изискания ресурс е ограничен и уеб сървърът отказва да ви върне в отговор изисканото съдържание.
Това съобщение може да се получи, ако сайтът има файл/директория с некоректни права, ако има забрана за достъп в .htaccess или ако липсва индексен файл в директорията, която се достъпва.

По същия начин както с код 404 може да опитате да промените адреса, който достъпвате, за да получите някакъв достъп до сайта.

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

HTTP 200 OK

Това е най-често срещаният статус код от този списък. Когато уеб сървърът има отговор за дадена заявка, той показва това пред клиента със статус код 200 OK. Например ако за зареждането на дадена страница се правят 40 заявки към уеб сървъра, минимум на 38 от тях уеб браузърът ще получи статус код 200. Останалите може да са 301, 302, 404, 403 или други.

За уеб браузъра статус код 200 е като любимият шум на банкомата, в потвърждение, че ресурсът е наличен и към клиента се изпраща съдържанието.

HTTP 301 Moved Permanently и 302 Found

Тези кодове означават, че търсеният ресурс е сменил уеб адреса си. Използват се, за да покажат на уеб клиентите, че има пренасочване и че трябва да потърсят ресурса на друг уеб адрес. 301 кодът показва, че пренасочването е постоянно и за в бъдеще клиентът трябва да ползва само новия уеб адрес. 302 кодът указва на уеб клиентите, че новият адрес на ресурса е временен, тоест за в бъдеще да използват стария уеб адрес.

Търсещите машини отделят специално внимание на тези два статус кода, особено на 301. Наличието на този код в отговора от сайта ще означава, че уеб адресът на ресурса трябва да се подмени в базата данни на търсачката.

Всички възможни статус кодове, които можете да срещнете и тези, които не се виждат с просто око, са описани в спецификацията на HTTP протокола.

Следващият път, когато се натъкнете на някой от посочените статус кодове, не бързайте да кликвате на Х бутона и не се стряскайте, а просто проверете дали това е грешка, или пък не. 🙂

Специалист Техническа Поддръжка

Меган е една от нашите super-support-гурута. СуперСилата на Меган е, че може да обясни и най-сложните технологии на достъпен за всеки език.

500px270px
SuperHosting.BG

Препоръчани статии

Оставете коментар

4 Коментара към "Грешка (404, 500, 301) или пък не?"

Уведоми ме при
avatar
Николай Тодоров
Гост

Наскоро добавих опция към един от онлайн магазините които поддържам, която да филтрира всичкия трафик който идва от други държави (поради нелоялна конкуренция). Като резултат всички с IP извън България получават 503, което малко ме притеснява.
Въпроса ми е дали да ги пренасоча към страница която да ги уведомява или това ще доведе до изкуствено създаване на 404 според google.

СуперХостинг.БГ
SH
Здравейте, Николай, Съобщението 404 Not Found се връща само ако уеб сървърът не открие търсения ресурс. Ако създадете пренасочване към страница от сайта, която съществува, то всички пренасочени посетители ще получават съобщение 301 или 302, но не и 404 Not Found. В това число и ботовете на Google, които не използват български IP адреси (освен ако не сте ги изключили от филтрирането на трафика), също ще получат съобщението за пренасочване 301/302. При филтриране на трафика, чрез забрана за достъп от определени IP адреси/държави, при опит за достъп ще се получи… още »
Йоанна Калова
Гост

Много полезна статия. Постоянно срещам такива грешки. Признавам, най-много се чудех какво означава „301 redirected“, но сега вече съм наясно.
Имам едно питане за 404. Когато се появи тази грешка, е статията пише, че „грешката е при клиента“ – тоест при клиента, който търси определена страница ли? Това ли се има предвид? Грешката не е ли в самия сайт – не може да намери търсената страница поради нарушена структура на сайта или нещо подобно…

СуперХостинг.БГ
SH

Здравейте, Йоанна,

Радваме се, че статията Ви е харесала и е полезна за Вас.

Грешка 404 може да се предизвика ако изпишете нещо съвсем случайно след името на сайта например http://mysupersite.com/adfjsyuiwhefjh или ако една или повече букви в уеб адреса на ресурса са объркани. В този случай съобщението 404 показва, че има грешка в потърсения от посетителя уеб адрес.

Ако обаче адресът е правилен и ресурсът е съществувал преди, но вече не е наличен, вината за това е на администратора на сайта, който не е забелязал, че този ресурс липсва. 🙂

Поздрави,
Диан

wpDiscuz