HTTP Грешка 500 - Вътрешна грешка в сървъра, обяснена на обикновен английски

Кодовете за грешки в диапазона 4xx означават, че вие ​​или вашият браузър сте направили нещо нередно. Може би не сте влезли в системата, опитвали сте се да получите достъп до нещо, за което нямате разрешение, или просто сте се загубили.

Кодовете за грешки в диапазона 5xx обаче означават, че грешката е изцяло извън вашите ръце (освен ако не сте разработчик / администратор на сървъра). Може би вторият * най-разочароващ код за грешка, който някога можете да срещнете в интернет, е страховитият 500.

Какво означава?

Просто казано, сървърът се опита да направи нещо и не успя.

Според RFC 7231:

Кодът на състоянието 500 (Вътрешна грешка в сървъра) показва, че сървърът е срещнал неочаквано състояние, което му е попречило да изпълни заявката.

Причината за това може да бъде всичко, наистина!

Да си представим, че имате достъп до уебсайт, като използвате PHP API на Laravel за задната му страна.

Това, което хвърля грешката 500, може да бъде нещо толкова просто, колкото грешка, error_logопитваща се да регистрира масив вместо низ - нещо напълно несвързано с вашата заявка, но въпреки това грешка, която PHP ще хвърли и ще убие заявката, която сте направили към сървъра.

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

Как се оправя?

Като потребител без достъп до сървъра, вие наистина имате само опция:

Уведомете собственика на сайта, че се връща 500, когато очаквате друго

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

Опитайте се да дадете на разработчиците / екипа за поддръжка колкото се може повече информация за това, което се опитвате да направите, за да могат те бързо да репликират проблема, за да проследят грешката.

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

Във Firefox можете да отворите раздела на мрежата с клавишните комбинации ctrl + shift + E. В Chrome можете да отворите инструментите за програмисти с ctrl + shift + Iи след това да изберете мрежовия раздел.

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

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

Седнете здраво

След като докладвахте за проблема, сте направили всичко, което можете разумно.

* чудите ли се кой е най-разочароващият код за грешка, който можете да срещнете в дивата природа? 418: Аз съм чайник. Ако срещнете това като действителна грешка, това означава, че разработчикът се е постарал да приложи това като отговор на грешката, но това е шега и не ви дава информация. Случва се.

Ако обещаете никога да не връщате 418 в отговор на реална грешка от страна на клиента, тогава можете да поддържате връзка с мен в Twitter @JacksonBates.