Abowe > 2. Síťové protokoly > Jednotlivé protokoly > Stavová hlášení HTTP protokolu
Stavová hlášení HTTP protokolu, chybové kódy
Obsah článku v kostce:
- Každý požadavek na webový server je nějak vyřízen a prohlížeč obdrží stavový kód výsledku požadavku.
- Stavová hlášení se dělí do pěti tematických skupin:
- Pro vážné zájemce se znalostí anglického jazyka je jistě přínosnější originální verze Status Code Definitions.
Co je to "Stavové hlášení HTTP protokolu" a kde je můžu potkat
Stavová hlášení jsou implementována do hlavičky HTTP protokolu od jeho verze 1.0.
Stavové hlášení se skládá z čísla kódu a jeho popisu (v angličtině).
Pokud si chcete prohlédnout nějakou www stránku, může být Vás požadavek vyřízen
kladně, záporně, může skončit chybou atd. Tuto informaci (v jakém stavu váš
požadavek je) přenášejí právě stavové kódy. Stavové hlášení (kódy) jsou vlastně
odpovědi serveru na Vaše požadavky. Jsou rozděleny do pěti kategorií, přičemž 4xx a 5xx jsou kódy chyb
(značí zápornou odpověď serveru).
Nejčastější hlášení (chyby)
Kód (chyba, error) 404 – stránka nenalezena – je patrně nejrozšířenější.
Chyba 404 někdy bývá na serverech nahrazována vlastní stránkou, která nejen informuje
o nenalezení požadované stránky a obsahuje navigaci pro další práci (např. vyhledávání,
odkaz na mapu webu ap.).
Snaží-li se uživatel dostat na místa, kam nemá přístup, vrátí mu server kód
403 obecná chyba, nebo 401 neautorizovaný přístup (je-li vyžadována autorizace
přes HTTP).
Kód 500 značící vnitřní chybu systému je nejčastější chybou serveru. S ostatními
kódy se v praxi setkáme jen výjimečně.
Kódy 3xx pro přesměrování posílá server pokud se na zadané adrese požadovaný
obsah nenachází. Klasické přesměrování se řeší pomocí kódu 307, je-li stránka
přemístěna trvale, používá se přesměrování kódem 301.
Informativní kódy 1xx jsou pro komunikaci mezi servery. Sami se s nimi téměř nesetkáme.
Kód 100 potvrzuje možnost pokračovat v zasílání požadavku, kód 101 nese
informaci o změně komunikačního protokolu. Kódy 2xx informují o úspěšném
vyřízení požadavku a jejich další prozkoumávání nebývá nutné.
Jednotlivá stavová hlášení, chybové kódy
1xx informační
- 100 – Continue – pokračování – přijata část požadavku, klient může pokračovat v zasílání požadavku.
- 101 – Switching Protocols – přepínání protokolu – server přepíná protokol.
2xx úspěch
- 200 – OK – v pořádku – vše v pořádku, server zasílá odpověď.
- 201 – Created – vytvořeno – výsledkem zpracování dotazu bylo vytvoření nového objektu, který lze identifikovat pomocí URI. URI vytvořeného dokumentu je posíláno v těle odpovědi.
- 202 – Accepted – akceptováno – dotaz přijat, probíhá zpracování.
- 203 – Non-authoritative Information – nesměrodatná informace
- 204 – No Content – netřeba měnit dokument – požadavek byl úspěšný, jeho výsledkem nejsou žádná data pro klienta.
- 205 – Reset Content – obnovený obsah dokumentu – požadavek splněn, klient smí obnovit původní obsah dokumentu (primárně určeno jako informace pro klienta, že smí vynulovat obsah formuláře).
- 206 – Partial Content – neúplný obsah dokumentu – server splnil část GET požadavku pro zdroj.
3xx přesměrování požadavku
- 300 – Multiple Choices – více voleb – požadovaný dokument je dostupný na několika místech, klient musí vybrat jeden z dokumentů a znovu vyslat dotaz.
- 301 – Moved permanently – objekt přesunut – objekt byl trvale přestěhován na nové URI (oznámeno v hlavičce Location). Klient se musí zeptat na novém umístění.
- 302 – Moved temporarily – objekt dočasně přesunut – objekt dočasně přesunut.
- 303 – See Other – lze nalézt pod jinými URI – požadavek může být nalezen pod jiným URI.
- 304 – Not modified – nezměněno – beze změny. Byl-li požadavek GET, přístup povolen a dokument nezměněn, smí server odpovědět tímto kódem. Odpověď 304 nesmí obsahovat tělo zprávy.
- 305 – Use Proxy – použij proxy – požadavek musí být znovu poslán prostřednictvím proxy uvedené v URL.
- 306 – zatím nepoužito, rezervováno
- 307 – Temporary Redirect – dočasně přesunuto – požadovaná stránka byla dočasně přesunuta na nové URI.
4xx chyba klienta (chybný požadavek)
- 400 – Bad request – chybný požadavek – server nerozumí požadavku. Příčinou může být chybně formulovaný dotaz nebo chyba v URI adrese.
Zkontrolujte zápis adresy URI (zejména malá a velká písmena, tečky a lomítka).
- 401 – Unauthorized – neautorizovaný přístup – neoprávněný přístup k webové stránce (klient nesplnil identifikační požadavky). Některé stránky jsou povolené pouze pro přístup z určitých domén.
Zkuste zadat heslo ještě jednou (dávejte pozor na zápis malých a velkých písmen).
- 402 – Payement Required – zatím nepoužito, rezervováno pro budoucí použití
- 403 – Forbidden – obecná chyba – Access forbidden – server by rád odpověděl, ale nemá to povoleno.
- 404 – Not found – objekt nenalezen – objekt s požadovaným URL neexistuje. Tento chybový kód je nejčastější. Příčinou bývá buď překlep v zápisu URL nebo neexistence (zánik) objektu.
- 405 – Method Not Allowed – nepovolená metoda – metoda specifikovaná v požadavku není povolena.
- 406 – Not Acceptable – neakceptovatelné – server může generovat pouze odpověď, která není klientem akceptována.
- 407 – Proxy Authentication Required – je požadovaná proxy autentifikace – před obsloužením požadavku musí být tento požadavek autentifikován proxy serverem.
- 408 – Request Timeout – vypršení doby požadavku – potřeba požadavku je delší, než kolik si server připravil na čekání.
- 409 – Conflict – konflikt – požadavek nemůže být splněn z důvodu konfliktu.
- 410 – Gone – ukončeno – požadovaná stránka již není nadále přístupná.
- 411 – Lenght Required – je požadována délka – server neakceptoval požadavek, protože hlavička "Content-Lenght" není definována.
- 412 – Precondition Failed – přednastavená podmínka je chybná – podmínka ,která je dána v požadavku byla serverem vyhodnocená jako chybná.
- 413 – Request-url Entity Too Large – požadované množství je příliš velké – server neakceptoval požadavek, protože požadované množství je příliš velké.
- 414 – Request-url Too Long – URI požadavku je příliš dlouhé – požadavek nebyl akceptován serverem. Chyba se objeví, je-li "POST" požadavek překonvertován na požadavek "GET" s dlouhou dotazovací informací.
- 415 – Unsupported Media Type – nepodporovaný typ média – server neakceptoval požadavek, protože typ média není podporován.
- 416 – Requested Range Not Satisfiable – požadovaný rozsah je nesplnitelný – je-li v požadavku hlavička Range vyplněna rozmezím hodnot, které nevyhovují rozsahu hodnot aktuálně vybraného zdroje, může server vrátit tuto chybu.
- 417 – Expectation Failed – předpoklad skončil chybou – předpoklad zadaný v hodnotě hlavičky požadavku Except nemůže server dosáhnout.
5xx chyba serveru
- 500 – Internal server error – vnitřní chyba serveru – při zpracování dotazu došlo v programu serveru k blíže neurčené chybě.
- 501 – Not implemented – neimplementováno – hlášení serveru, pokud je po něm vyžadována metoda, kterou neovládá.
- 502 – Bad gateway – špatná brána – může hlásit proxy – tato chyba je zaslána zprostředkujícím serverem, pokud na váš dotaz obdržel od původního serveru špatnou odpověď.
- 503 – Service unavailable – služba nedostupná – může být způsobeno přetížením serveru – server momentálně nedokáže dotaz obsloužit (je přetížen, může probíhat údržba, může mít poruchu brána sítě podniku, která LAN připojuje k internetu.).
- 504 – Gateway Timeout – doba průchodu vypršela
- 505 – HTTP Version Not Supported – nepodporovaná verze HTTP – server nepodporuje verzi HTTP protokolu.
Odkazy
K sestavení tohoto přehledu stavových hlášení HTTP protokolu byla mimo jiné použita i kniha:
Referenční příručka XDHTML, autor Pavol Mikle.
Uveřejněno: 20.1.2005, 18:19
Poslední aktualizace:
04.03.2014, 11:38:58