Akýkoľvek webový server, ktorý prijme HTTP požiadavku, odpovie stavovým kódom HTTP. Tieto kódy sú krátke poznámky zo servera popisujúce situáciu. Neobsahujú žiadny skutočný obsah stránky. Namiesto toho ide o správu o tom, ako prebehlo spracovanie po prijatí požiadavky HTTP. V mnohých situáciách sú tieto kódy dôležité na diagnostiku rôznych problémov so serverom alebo klientom.
Tieto kódy sú trojmiestne celé čísla, z ktorých každé označuje rôzne stavy. Na základe prvej číslice sa kódy HTTP delia do piatich kategórií:
-
Informačné odpovede: Hodnota sa pohybuje od 100 do 199. Popisuje, že požiadavka bola prijatá a spracováva sa.
-
Úspešné odpovede: Hodnota sa pohybuje od 200 do 299. Hovorí, že akcia bola úspešne prijatá, pochopená a akceptovaná.
-
Správy o presmerovaní: Hodnota sa pohybuje od 300 do 399. Znamená to, že na dokončenie požiadavky sú potrebné ďalšie kroky.
-
Chybové odpovede klienta: Hodnota sa pohybuje od 400 do 499. Buď požiadavka obsahuje nesprávnu syntax, alebo ju nemožno splniť.
-
Chybové odpovede servera: Hodnota sa pohybuje od 500 do 599. Znamená to, že server nedokázal spracovať platnú požiadavku.
V tejto príručke sa z pohľadu systémového administrátora pozrieme na niektoré z najbežnejších chybových kódov HTTP, s ktorými sa stretáva každý (4xx a 5xx). K tomu, aby webový server odpovedal konkrétnym kódom, môže viesť množstvo situácií. Tento návod navyše rozoberie potenciálne príčiny a riešenia.
Chyby klienta vs. chyby servera
Chybové kódy 400 až 499 vyplývajú z klientskej strany používateľa (webový prehliadač alebo akýkoľvek HTTP klient). Hoci súvisia chyby väčšinou s klientom, je užitočné vedieť, s akým kódom sa používateľ stretáva. Môže to pomôcť určiť, či sa potenciálny problém nenachádza na strane servera.
Chyby servera (stavový kód HTTP 500 až 599) na druhej strane vznikajú vtedy, keď si je server vedomý, že došlo k chybe, alebo nie je schopný požiadavku spracovať.
Všeobecné riešenie problémov
Bez ohľadu na chybu, tu je niekoľko všeobecných tipov na riešenie problémov, ktoré by ste mali vyskúšať ako prvé, kedykoľvek narazíte na akýkoľvek chybový kód HTTP:
-
Pri testovaní servera pomocou webového prehliadača je osvedčeným postupom po vykonaní akejkoľvek zmeny na serveri prehliadač obnoviť.
-
Protokol servera (server log) obsahuje podrobné informácie o tom, ako server spracováva požiadavky. Napríklad populárne webové servery ako Apache a Nginx vytvárajú súbory access.log a error.log. Kontrola týchto protokolov môže odhaliť užitočné informácie.
-
Chybové kódy HTTP sú súčasťou štandardu. Programy tento štandard implementujú na základe toho, ako spracovávajú požiadavky. To znamená, že konkrétny stavový kód sa vracia podľa toho, ako softvér servera spracováva danú chybu.
Táto príručka by mala slúžiť ako užitočné vodítko pri zisťovaní zdroja problému.
Bežné chyby HTTP
-
Bežné chyby klienta

Chybový kód 400 indikuje zlú požiadavku (Bad Request). Popisuje, že požiadavka HTTP odoslaná na server obsahuje neplatnú syntax. Pozrime sa na potenciálne zdroje nesprávnej syntaxe:
-
Súbory cookie súvisiace so stránkou môžu byť poškodené. Vymazanie súborov cookie a vyrovnávacej pamäte prehliadača môže problém vyriešiť.
-
Webový prehliadač odosielajúci požiadavku môže byť chybný.
-
Môže ísť o zlú požiadavku v dôsledku chyby pri manuálnom vytváraní požiadaviek HTTP, napríklad pri nesprávnom použití curl.

Chybový kód 401 (Unauthorized) sa vyskytuje, keď sa požiadavka pokúša o prístup k zdrojom, ktoré neboli overené alebo neboli overené správne. Na vyriešenie problému musí používateľ poskytnúť potrebné prihlasovacie údaje na prístup k chránenému zdroju.
Príkladom takejto situácie je, keď sa používateľ pokúša o prístup k zdroju chránenému overením HTTP. V takejto situácii používateľ dostane chybový kód 401, pokiaľ nezadá platné používateľské meno a heslo.

Chybový kód 403 (Forbidden) označuje situáciu, keď je požiadavka používateľa platná, ale server ju odmieta vybaviť. Môže to byť spôsobené nedostatočnými oprávneniami na prístup k požadovanému zdroju. Existuje niekoľko scenárov, ktoré môžu viesť k tomuto problému:
-
Oprávnenia súborov: Ak server nemá dostatočné oprávnenia na prístup k požadovanému súboru, môže to viesť k chybe 403. Možné opravy zahŕňajú overenie, či sa server pokúša o prístup k indexovému súboru webového servera, a či pracovný proces vlastnený www-data používateľom, a indexový súbor sa nachádza na správnom mieste (v prípade Nginx je to /usr/share/nginx/html/index.html).
-
.htaccess: Webové servery používajú súbor .htaccess na implementáciu rôznych bezpečnostných funkcií, napríklad na filtrovanie konkrétnych IP adries alebo rozsahov. Možná oprava zahŕňa overenie, či IP adresa, z ktorej prichádza požiadavka HTTP, nie je zablokovaná.
-
Súbor neexistuje: Ak sa požiadavka pokúša o prístup k umiestneniu, ktoré nemá predvolený indexový súbor a výpisy adresárov nie sú povolené, server vráti chybu 403. V takejto situácii možná oprava zahŕňa úpravu konfigurácie servera tak, aby umožňovala výpisy adresárov.

Kód chyby 404 (Nenájdené) znamená, že používateľ sa dokázal úspešne pripojiť k webovému serveru, ale nedokázal nájsť požadovaný prostriedok. Táto chyba sa môže objaviť v mnohých situáciách. Tu sú niektoré možné kroky na riešenie problémov:
-
Skontrolujte prípadné preklepy v odkaze, ktorý používateľa presmeroval na prostriedok servera.
-
Používateľ mohol zadať nesprávnu URL adresu. Skontrolujte, či je to tak, a v prípade potreby to opravte.
-
Overte existenciu súboru na serveri. Bol presunutý alebo vymazaný zo servera?
-
Server môže byť nakonfigurovaný s nesprávnym umiestnením koreňového adresára dokumentov (document root). Skontrolujte to a v prípade potreby opravte.
-
Má pracovný proces webového servera vlastnený používateľom oprávnenie prechádzať požadovaný súbor? Upozorňujeme, že prístup k adresáru vyžaduje oprávnenia na čítanie aj spúšťanie.
-
Je prostriedok symbolickým odkazom? V takom prípade musí byť server nakonfigurovaný tak, aby sledoval symbolické odkazy.
-
Bežné chyby servera

Kód chyby 500 (Interná chyba servera) sa vyskytuje, keď server z neznámych dôvodov nedokáže spracovať požiadavku. V niektorých situáciách server nahlási chybu 500, hoci by bol vhodnejší konkrétnejší kód chyby 5xx.
Jedným z najbežnejších zdrojov chyby 500 je nesprávne nakonfigurovaný server, napríklad nesprávne naformátovaný súbor .htaccess . Môže k nej dôjsť aj vtedy, ak chýbajú balíky, napríklad pri pokuse o spustenie PHP kódov bez toho, aby bol PHP nainštalovaný v systéme.

Kód chyby 502 (Chybná brána) hovorí, že server je proxy alebo brána a nedokáže získať platnú odpoveď od backendového servera (ktorý je zodpovedný za skutočné vybavenie požiadavky). Ak je server reverzným proxy, napríklad nástrojom na vyrovnávanie záťaže, je potrebné skontrolovať niekoľko rôznych vecí:
-
Backendové servery sú funkčné.
-
Reverzný proxy server je správne nakonfigurovaný (so správnymi špecifikáciami backendu).
-
Spojenie medzi reverzným proxy a backendovým serverom je v poriadku. Ak servery dokážu komunikovať pomocou rôznych portov, brána firewall musí povoliť pripojenie k týmto portom.
-
Ak je webová aplikácia nakonfigurovaná na používanie socketu, uistite sa, že socket existuje na správnom mieste so správnymi oprávneniami.

Kód chyby 503 (Služba nedostupná) popisuje, že server je preťažený alebo momentálne prebieha jeho údržba. Znamená to, že server by mal byť v určitom okamihu opäť dostupný.
Ak server nie je v režime údržby, znamená to, že nemá potrebné hardvérové prostriedky (výpočtový výkon, pamäť atď.) na spracovanie prichádzajúcich požiadaviek. V takom prípade by mal byť server nakonfigurovaný tak, aby umožňoval viac používateľov alebo pridelil viac prostriedkov.
Kód chyby 504 (Časový limit brány vypršal) hovorí, že server je proxy alebo brána a nedostal odpoveď od backendu v povolenom časovom okne. K tomuto problému môže viesť niekoľko situácií:
-
Zlé sieťové pripojenie medzi servermi.
-
Backendový server beží príliš pomaly (kvôli problémom s výkonom).
-
Časový limit brány/proxy servera je nastavený príliš prísne.
Záverečné myšlienky
Táto príručka sa zaoberá chybovými kódmi HTTP, najmä niektorými z najbežnejších. Popisuje, čo tieto kódy znamenajú, a ponúka návrhy na potenciálne kroky pri riešení problémov. S týmito znalosťami máte teraz pevný základ na riešenie problémov s vašimi webovými servermi alebo aplikáciami.
Toto je len stručný zoznam najpopulárnejších stavových kódov HTTP. Pre komplexný zoznam všetkých stavových kódov HTTP pozrite si stavové kódy HTTP na Wikipédii. Môžete si tiež pozrieť náš návod na Nginx HTTP proxying, vyvažovanie záťaže, buffering a ukladanie do vyrovnávacej pamäte: prehľad.
Príjemnú prácu s počítačom!
Komentáre
Zatiaľ žiadne komentáre. Buďte prvý.