Bármely webszerver, amelyik kap egy HTTP kérést, egy HTTP-állapotkóddal válaszol. Ezek a kódok a szerver rövid üzenetei, amelyek leírják a helyzetet. Nem tartalmaznak tényleges webhelytartalmat. Ehelyett ez egy jelentés arról, hogyan alakultak a dolgok a HTTP-kérés fogadása után. Sok esetben ezek a kódok fontosak a különböző szerver-/kliensproblémák diagnosztizálásához.
Ezek a kódok háromjegyű egész számok, amelyek mindegyike különböző állapotokat jelez. Az első számjegy alapján a HTTP-kódok öt kategóriába sorolhatók:
-
Információs válaszok: Az érték 100 és 199 között mozog. Azt jelzi, hogy a kérés beérkezett és feldolgozás alatt áll.
-
Sikeres válaszok: Az érték 200 és 299 között mozog. Azt jelzi, hogy a művelet sikeresen beérkezett, megértésre és elfogadásra került.
-
Átirányítási üzenetek: Az érték 300 és 399 között mozog. Ez azt jelenti, hogy a kérés teljesítéséhez további műveletekre van szükség.
-
Klienshiba-válaszok: Az érték 400 és 499 között mozog. Vagy a kérés hibás szintaxist tartalmaz, vagy nem teljesíthető.
-
Szerverhiba-válaszok: Az érték 500 és 599 között mozog. Ez azt jelenti, hogy a szervernek nem sikerült feldolgoznia egy érvényes kérést.
Ebben az útmutatóban a leggyakoribb HTTP-hibakódok közül mutatunk be néhányat, amelyekkel mindenki találkozik (4xx és 5xx), egy rendszergazda szemszögéből. Számos helyzet vezethet oda, hogy a webszerver egy adott kóddal válaszoljon. Emellett ez az útmutató a lehetséges okokat és megoldásokat is tárgyalja.
Kliens- vs. szerverhibák
A 400 és 499 közötti hibakódok a felhasználói kliensből (webböngészőből vagy bármely HTTP-kliensből) származnak. Bár a hibák többnyire kliensoldaliak, hasznos tudni, hogy a felhasználó melyik kódot tapasztalja. Ez segíthet meghatározni, hogy egy esetleges probléma a szerveroldalon is orvosolható-e.
A szerverhibák (500 és 599 közötti HTTP-állapotkódok) ezzel szemben akkor fordulnak elő, ha a szerver észleli, hogy hiba történt, vagy nem képes feldolgozni a kérést.
Általános hibaelhárítás
A hibától függetlenül, íme néhány általános hibaelhárítási tipp, amelyet érdemes először kipróbálnia, amikor bármilyen HTTP-hibakóddal találkozik:
-
Ha webböngészőt használ a szerver tesztelésére, jó gyakorlat frissíteni a böngészőt, miután bármilyen változtatást végrehajtott a szerveren.
-
A szervernapló részletes információkat tartalmaz arról, hogyan kezeli a szerver a kéréseket. Például az olyan népszerű webszerverek, mint az Apache és az Nginx, a következő fájlokat hozzák létre: access.log és error.log. Ezen naplók ellenőrzése hasznos információkat tárhat fel.
-
A HTTP-hibakódok egy szabvány részét képezik. A programok ezt a szabványt valósítják meg a kérések kezelésének módja alapján. Ez azt jelenti, hogy egy adott állapotkód attól függően kerül visszaadásra, hogy a szerverszoftver hogyan kezeli az adott hibát.
Ez az útmutató hasznos iránymutatásként szolgálhat a probléma forrásának kiderítésében.
Gyakori HTTP-hibák
-
Gyakori klienshibák

A 400-as hibakód hibás kérést (Bad Request) jelez. Azt fejezi ki, hogy a szervernek küldött HTTP-kérés érvénytelen szintaxist tartalmaz. Nézzük meg a hibás szintaxisok lehetséges forrásait:
-
Az oldallal kapcsolatos sütik (cookie-k) sérültek lehetnek. A böngésző sütijeinek és gyorsítótárának törlése megoldhatja a problémát.
-
A kérést küldő webböngésző hibás lehet.
-
Ez egy manuálisan megformázott HTTP-kérés hibájából adódó rossz kérés is lehet, például az alábbi helytelen használata miatt: curl.

A 401-es hibakód (Unauthorized / Nem felhatalmazott) akkor fordul elő, ha a kérés olyan erőforrásokhoz próbál hozzáférni, amelyek nem lettek hitelesítve, vagy nem megfelelően lettek hitelesítve. A probléma megoldásához a felhasználónak meg kell adnia a védett erőforrás eléréséhez szükséges hitelesítő adatokat.
Példa erre az a helyzet, amikor a felhasználó egy HTTP-hitelesítéssel védett erőforrást próbál elérni. Ilyen esetben a felhasználó 401-es hibakódot kap, kivéve, ha érvényes felhasználónevet és jelszót ad meg.

A 403-as hibakód (Forbidden / Tiltott) olyan helyzetre utal, amikor a felhasználói kérés érvényes, de a szerver megtagadja a kérés kiszolgálását. Ennek oka lehet a kért erőforrás eléréséhez szükséges jogosultság hiánya. Néhány forgatókönyv vezethet ehhez a problémához:
-
Fájljogosultságok: Ha a szervernek nincs elegendő jogosultsága a kért fájl eléréséhez, az 403-as hibát eredményezhet. A lehetséges javítások közé tartozik annak ellenőrzése, hogy a szerver a webszerver index fájlját próbálja-e elérni, a www-data felhasználó által birtokolt munkafolyamatot, és hogy az index fájl a megfelelő helyen található-e (Nginx esetében ez a /usr/share/nginx/html/index.html).
-
.htaccess: A webszerverek a .htaccess fájlt használják különböző biztonsági funkciók megvalósítására, például konkrét IP-címek vagy tartományok szűrésére. Egy lehetséges javítás annak ellenőrzése, hogy az HTTP-kérés forrásaként szolgáló IP-cím nincs-e blokkolva.
-
A fájl nem létezik: Ha a kérés olyan helyet próbál elérni, amely nem rendelkezik alapértelmezett index fájllal, és a könyvtárlistázás nincs engedélyezve, a szerver 403-as hibát küld vissza. Ilyen helyzetben a lehetséges javítás a szerverkonfiguráció módosítása a könyvtárlistázás engedélyezéséhez.

A 404-es hibakód (Nem található) azt jelenti, hogy a felhasználónak sikerült csatlakoznia a webszerverhez, de a kért erőforrás nem található. Ez a hiba számos helyzetben előfordulhat. Íme néhány lehetséges hibaelhárítási lépés:
-
Ellenőrizze, hogy nincs-e gépelési hiba a linkben, amely a felhasználót a szerver erőforrására irányította.
-
Előfordulhat, hogy a felhasználó rosszul gépelte be az URL-t. Ellenőrizze, hogy ez a helyzet, és szükség esetén javítsa ki.
-
Ellenőrizze a fájl meglétét a szerveren. Áthelyezték vagy törölték a szerverről?
-
Előfordulhat, hogy a szerver hibás dokumentum-gyökérkönyvtárral (document root) van konfigurálva. Ellenőrizze ezt, és szükség esetén javítsa ki.
-
Rendelkezik a felhasználó által birtokolt webszerver-munkafolyamat jogosultsággal a kért fájl eléréséhez? Vegye figyelembe, hogy a könyvtárak eléréséhez olvasási és végrehajtási jogosultságra egyaránt szükség van.
-
Az erőforrás egy szimbolikus link? Ebben az esetben a szervert úgy kell konfigurálni, hogy kövesse a szimbolikus linkeket.
-
Gyakori szerverhibák

Az 500-as hibakód (Belső szerverhiba) akkor fordul elő, ha a szerver ismeretlen okokból nem képes feldolgozni a kérést. Bizonyos helyzetekben a szerver 500-as hibát jelez akkor is, ha egy specifikusabb 5xx hibakód megfelelőbb lenne.
Az 500-as hiba egyik leggyakoribb forrása a rosszul konfigurált szerver, például egy hibás formátumú .htaccess fájl. Akkor is előfordulhat, ha hiányoznak csomagok, például ha PHP-kódot próbálnak futtatni anélkül, hogy a PHP telepítve lenne a rendszeren.

Az 502-es hibakód (Rossz átjáró) azt jelzi, hogy a szerver egy proxy vagy átjáró, és nem tud érvényes választ kapni a háttérszervertől (amely a kérés tényleges teljesítéséért felelős). Ha a szerver egy fordított proxy, például egy terheléselosztó, néhány különböző dolgot kell ellenőrizni:
-
A háttérszerverek megfelelően működnek.
-
A fordított proxy megfelelően van konfigurálva (a megfelelő háttér-specifikációkkal).
-
A fordított proxy és a háttérszerver közötti kapcsolat megfelelő. Ha a szerverek különböző portokon keresztül kommunikálnak, a tűzfalnak engedélyeznie kell a kapcsolatot ezeken a portokon.
-
Ha a webalkalmazás socket használatára van konfigurálva, győződjön meg arról, hogy a socket a megfelelő helyen létezik, a megfelelő jogosultságokkal.

Az 503-as hibakód (A szolgáltatás nem érhető el) azt jelzi, hogy a szerver túlterhelt vagy jelenleg karbantartás alatt áll. Ez azt jelenti, hogy a szervernek egy bizonyos idő után újra elérhetővé kell válnia.
Ha a szerver nincs karbantartás alatt, az azt jelzi, hogy a szerver nem rendelkezik a beérkező kérések kezeléséhez szükséges hardveres erőforrásokkal (feldolgozási teljesítmény, memória stb.). Ilyen esetben a szervert úgy kell konfigurálni, hogy több felhasználót engedélyezzen, vagy több erőforrást rendeljen hozzá.
Az 504-es hibakód (Átjáró időtúllépés) azt jelzi, hogy a szerver egy proxy vagy átjáró szerver, és a megengedett időkereten belül nem kapott választ a háttérszervertől. Számos olyan helyzet van, amely ehhez a problémához vezethet:
-
Rossz hálózati kapcsolat a szerverek között.
-
A háttérszerver túl lassan működik (teljesítményproblémák miatt).
-
Az átjáró/proxy szerver időtúllépési korlátja túl szigorú.
Záró gondolatok
Ez az útmutató a HTTP-hibakódokat tárgyalja, különösen a leggyakoribbakat. Leírja, mit jelentenek a kódok, és javaslatokat tesz a lehetséges hibaelhárítási lépésekre. Ezzel a tudással már szilárd alapokkal rendelkezik a webszerverekkel vagy alkalmazásokkal kapcsolatos problémák elhárításához.
Ez csak egy rövid lista a legnépszerűbb HTTP-állapotkódokról. Az összes HTTP-állapotkód átfogó listájáért tekintse meg a HTTP-állapotkódokat a Wikipédián. Emellett megtekintheti a következő témáról szóló útmutatónkat is: Nginx HTTP-proxyzás, terheléselosztás, pufferelés és gyorsítótárazás: áttekintés.
Kellemes számítógép-használatot!
Hozzászólások
Még nincsenek hozzászólások. Legyen Ön az első.