Svi smo već bili tamo: bezumno se pomičete webom kada odjednom ostanete spriječeni u nastavku pretraživanja zbog HTTP koda pogreške. Ovo kao korisnik može biti frustrirajuće iskustvo. Međutim, HTTP statusni kodovi nadilaze jednostavno priopćavanje pogreške – ti kodovi također mogu označavati uspješan prijenos ili preusmjeravanje na novi URL web-mjesta. Kada pokušavate pristupiti web-stranici, vaš preglednik šalje zahtjev web-poslužitelju na kojem se web-stranica nalazi.
Ovisno o tome je li prijenos bio uspješan ili ne, web poslužitelj može vratiti odabrani broj odgovora. Oni se nazivaju HTTP statusni kodovi. Oni variraju od informativnih i uspješnih do preusmjeravanja i kodova pogrešaka. Svaki statusni kod označen je numeričkim identifikatorom u rasponu između 100 i 599. Sve kodove i njihova značenja održava Uprava za dodjelu brojeva na internetu (IANA).
Ovdje je iscrpan popis HTTP statusnih kodova i njihova značenja.
1xx HTTP statusni kodovi: Informativni odgovori
Kodovi odgovora 1xx su informativni. Oni pokazuju da je vaš web preglednik poslao zahtjev poslužitelju i čeka odgovor.
- HTTP statusni kod 100 (nastavi): Poslužitelj je primio zaglavlje zahtjeva vašeg preglednika i sada čeka tijelo vašeg zahtjeva.
- HTTP statusni kod 101 (protokol za prebacivanje): Vaš preglednik je poslao zahtjev za promjenu protokola i poslužitelj ga je prihvatio.
- HTTP statusni kod 102 (obrada): poslužitelj obrađuje zahtjev vašeg preglednika, ali još nema odgovora s poslužitelja.
- HTTP statusni kod 103 (rani savjeti): Poslužitelj šalje neke "rane savjete" vašem pregledniku da unaprijed učita određene resurse prije nego što poslužitelj pruži konačni odgovor.
2xx HTTP statusni kodovi: Uspješni odgovori
Ovi statusni kodovi obavještavaju klijenta (vaš web preglednik) da se sve obrađuje kako treba.
- HTTP statusni kod 200 (OK): Zahtjev je uspješan i dat je odgovarajući odgovor. Ovisno o HTTP metodi (GET, HEAD, PUT/POST ili TRACE), odgovor će varirati.
- HTTP statusni kod 201 (Stvoreno): Zahtjev vašeg preglednika je uspio i, kao rezultat toga, stvoren je novi resurs. Ovo je uobičajeni odgovor na POST i neke PUT zahtjeve.
- HTTP statusni kod 202 (prihvaćen): Poslužitelj je primio zahtjev vašeg preglednika, ali još nije postupio po njemu.
- HTTP statusni kod 203 (informacije koje nisu vjerodostojne): Poslužitelj vraća meta-informacije ne s izvornog poslužitelja, jer meta-informacije koje su trenutno dostupne mogu biti drugačije. Ovo se koristi kada se informacije prikupljaju od treće strane ili lokalne kopije.
- HTTP statusni kod 204 (bez sadržaja): Nakon uspješnog zahtjeva, poslužitelj nema sadržaja za vraćanje. Međutim, može vratiti informacije o trenutnom zaglavlju, tako da vaš korisnički agent ažurira svoja predmemorirana zaglavlja.
- HTTP statusni kod 205 (poništavanje sadržaja): Vaš preglednik je primio odgovor od poslužitelja za promjenu prikaza dokumenta.
- HTTP statusni kod 206 (djelomičan sadržaj): Poslužitelj je vratio dio sadržaja jer ga je vaš preglednik zatražio sa zaglavljem Range.
- HTTP statusni kod 207 (više statusa): Za posebne situacije, gdje je potrebno više statusnih kodova, poslužitelj vraća informacije o višestrukim izvorima.
- HTTP statusni kod 208 (već prijavljen): Kako bi se izbjeglo nepotrebno nabrajanje, poslužitelj vraća informacije da su interni članovi WebDAV elementa već prijavljeni. Tipično, ovaj odgovor slijedi nakon odgovora 207 (Multi-Status).
- HTTP statusni kod 226 (korišten IM): Poslužitelj je uspješno obradio GET metodu vašeg preglednika za dohvaćanje ažurirane verzije već predmemoriranog resursa. Općenito, odgovor se vraća kada postoji jedna ili više neznatnih izmjena traženog resursa.
3xx HTTP statusni kodovi: Odgovori preusmjeravanja
Statusni kodovi u rasponu 300-399 pokazuju da je željeni sadržaj premješten na drugo mjesto i daju pregledniku do znanja gdje se može pronaći.
- HTTP statusni kod 300 (višestruki izbor): Dostupno je više odgovora za zahtjev koji je postavio vaš web preglednik.
- HTTP statusni kod 301 (Trajno premješten): Poslužitelj preusmjerava vaš preglednik na drugi URL jer je željeni resurs trajno premješten na novu lokaciju.
- HTTP statusni kod 302 (pronađen): Vaš preglednik je dobio odgovor da je traženi resurs privremeno premješten na drugu lokaciju. Međutim, isti URL treba koristiti za sve sljedeće zahtjeve.
- HTTP statusni kod 303 (vidi ostalo): Poslužitelj obavještava preglednik da se željeni resurs nalazi na drugom URL-u i da ga treba zatražiti metodom GET.
- HTTP statusni kod 304 (nije promijenjen): Vraćeni odgovor govori web pregledniku da željeni resurs nije promijenjen od zadnjeg puta kada je zatražen. Kao rezultat toga, preglednik bi trebao koristiti verziju spremljenu u predmemoriju.
- HTTP statusni kod 305 (koristi proxy): Poslužitelj zahtijeva proxy kako bi vratio traženi resurs. Ovaj kod odgovora trenutno nije u upotrebi jer ga većina trenutačnih preglednika ne podržava zbog sigurnosnih problema.
- HTTP statusni kod 306 (zamijeni proxy): Poslužitelj zahtijeva upotrebu određenog proxyja kako bi ispunio sljedeće zahtjeve. Slično, ova poruka odgovora nije podržana zbog sigurnosnih razloga.
- HTTP statusni kod 307 (privremeno preusmjeravanje): Zamjena za statusni kod 302 (Pronađeno), poslužitelj obavještava preglednik da se željeni resurs privremeno nalazi na drugoj lokaciji. Međutim, ista HTTP metoda mora se koristiti kada se traži resurs.
- HTTP statusni kod 308 (Trajno preusmjeravanje): Nasljednik statusnog koda 301 (Trajno premješteno), vaš web preglednik pokušava pristupiti resursu koji je trajno premješten na novu lokaciju. Ova vrsta preusmjeravanja ne dopušta promjenu metode HTTP zahtjeva.
4xx HTTP statusni kodovi: Odgovori klijenta o pogrešci
Ovi statusni kodovi pokazuju da su prisutne pogreške koje je uzrokovao klijent.
- HTTP statusni kod 400 (Loš zahtjev): Postoji greška na strani klijenta i kao rezultat toga poslužitelj ne može vratiti odgovor.
- HTTP statusni kod 401 (neovlašteno): Poslužitelj zahtijeva provjeru autentičnosti kako bi web preglednik mogao nastaviti do traženog resursa.
- HTTP statusni kod 402 (potrebno plaćanje): Kao što naziv sugerira, ovaj kod je rezerviran za digitalne sustave plaćanja. Međutim, nije široko korišten.
- HTTP statusni kod 403 (Zabranjeno): Web pregledniku je odbijen pristup traženom izvoru jer klijent nema potrebne dozvole.
- HTTP statusni kod 404 (nije pronađen): Željeni izvor nije moguće pronaći, ali bi mogao biti dostupan u budućnosti.
- HTTP statusni kod 405 (metoda nije dopuštena): Poslužitelj prepoznaje metodu HTTP zahtjeva koju koristi web-preglednik, ali zahtijeva korištenje druge kako bi pružio željeni resurs.
- HTTP statusni kod 406 (nije prihvatljivo): Poslužitelj obavještava klijenta da nijedan resurs ne odgovara kriterijima koje zahtijeva vaš web preglednik.
- HTTP statusni kod 407 (potrebna proxy provjera autentičnosti): Slično statusnom kodu 401 (neautorizirano), ali poslužitelj zahtijeva provjeru autentičnosti putem proxyja.
- HTTP statusni kod 408 (Istek vremena zahtjeva): Isteklo je vrijeme poslužitelja čekajući da klijent pošalje zahtjev unutar navedenog vremenskog okvira.
- HTTP statusni kod 409 (sukob): Postoji sukob s trenutnim stanjem željenog resursa, kao rezultat, poslužitelj ne može vratiti odgovor.
- HTTP statusni kod 410 (nestao): Nije za razliku od statusnog koda 404 (nije pronađeno), ali označava da zatraženi resurs više neće biti dostupan u budućnosti.
- HTTP statusni kod 411 (potrebna duljina): Poslužitelj obavještava vaš web preglednik da zahtijeva da zahtjev uključi određenu duljinu sadržaja kako bi vratio željeni izvor.
- HTTP statusni kod 412 (pretpostavka nije uspjela): Vaš web preglednik izdao je zahtjev s preduvjetima, od kojih poslužitelj nije mogao ispuniti jedan.
- HTTP statusni kod 413 (korisni teret je prevelik): Poslužitelj ne želi obraditi zahtjev jer je prevelik.
- HTTP statusni kod 414 (URL predug): Zahtjev koji šalje vaš web preglednik poslužitelj ne može obraditi jer je klijent kodirao previše podataka kao niz upita, koji se zatim šalje kao GET metoda.
- HTTP statusni kod 415 (nepodržana vrsta medija): Zahtjev je odbio poslužitelj jer ne podržava željenu vrstu medija.
- HTTP statusni kod 416 (raspon nije zadovoljavajući): Poslužitelj ne može pružiti dio koji je tražio klijent.
- HTTP statusni kod 417 (očekivanje nije uspjelo): Vaš web preglednik poslao je zahtjev poslužitelju s Expect zaglavljem, ali poslužitelj ne može ispuniti zahtjeve.
- HTTP statusni kod 418 (ja sam čajnik): HTTP uskršnje jaje, koje je bilo dio prvotravanjske šale. Ne očekuje se da HTTP poslužitelji implementiraju ovaj protokol, ali ako ste znatiželjni kako to izgleda, pogledajte Googleovu stranicu Teapot.
- HTTP statusni kod 421 (pogrešno usmjeren zahtjev): Zahtjev vašeg web preglednika preusmjeren je na drugi poslužitelj koji nije mogao dati odgovor.
- HTTP statusni kod 422 (entitet koji se ne može obraditi): Bilo je semantičkih pogrešaka u zahtjevu koji je poslao vaš web preglednik i, kao rezultat toga, nije ga bilo moguće pratiti.
- HTTP statusni kod 423 (zaključano): Pristup željenom izvoru je odbijen jer je zaključan.
- HTTP statusni kod 424 (Neuspjela ovisnost): Zahtjev koji je poslao vaš web preglednik nije uspio jer je ovisio o drugom zahtjevu, koji također nije uspio.
- HTTP statusni kod 425 (prerano): Poslužitelj odbija obraditi zahtjev jer bi se mogao ponovno reproducirati.
- HTTP statusni kod 426 (potrebna nadogradnja): Trenutačni protokol nije prihvaćen od strane poslužitelja, stoga poslužitelj vraća zaglavlje nadogradnje klijentu sa zahtjevom za ažuriranje protokola.
- HTTP statusni kod 428 (potreban preduvjet): Web preglednik mora specificirati uvjete da poslužitelj obradi njegov zahtjev.
- HTTP statusni kod 429 (previše zahtjeva): Poslužitelj je primio previše zahtjeva od vašeg web preglednika u dodijeljenom vremenu čekanja.
- HTTP statusni kod 431 (Polja zaglavlja zahtjeva su prevelika): Poslužitelj ne obrađuje klijentov zahtjev jer su navedena zaglavlja zahtjeva prevelika. Poslužitelj je voljan obraditi zahtjev nakon što se promijeni veličina zaglavlja.
- HTTP statusni kod 451 (nedostupan iz pravnih razloga): Poslužitelj odbija pružiti željeni resurs zbog pravnih razloga.
5xx HTTP statusni kodovi: odgovori na pogreške poslužitelja
Statusni kodovi 5xx pokazuju da poslužitelj nije uspio obraditi zahtjev.
- HTTP statusni kod 500 (interna pogreška poslužitelja): Ovo je generička poruka o pogrešci koju šalje poslužitelj kada se naiđe na neočekivano stanje.
- HTTP statusni kod 501 (nije implementirano): Poslužitelj pokazuje da ili ne može ispuniti zahtjev ili ne prepoznaje HTTP metodu.
- HTTP statusni kod 502 (loš pristupnik): Poslužitelj vraća odgovor da je služio kao pristupnik ili proxy za uzvodni poslužitelj, koji je dao nevažeći odgovor.
- HTTP statusni kod 503 (usluga nedostupna): Poslužitelj ne može obraditi zahtjev jer je ili preopterećen ili je na održavanju.
- HTTP statusni kod 504 (Istek vremena pristupnika): Upstream poslužitelj nije dao pravovremeni odgovor drugom poslužitelju, koji trenutno služi kao gateway ili proxy. Kao rezultat toga, ne može dati odgovor klijentu.
- HTTP statusni kod 505 (HTTP verzija nije podržana): Poslužitelj ne podržava HTTP metodu korištenu u zahtjevu.
- HTTP statusni kod 506 (varijanta također pregovara): S obzirom na to da HTTP dopušta više varijanti resursa da se nalazi pod jednim URL-om, poslužitelj ne može odlučiti koju (najbolju) verziju pružiti kao odgovor. To je obično zbog problema s konfiguracijom poslužitelja.
- HTTP statusni kod 507 (nedovoljno prostora za pohranu): Poslužitelj ne može pohraniti prikaz željenog resursa potrebnog za uspješno ispunjenje zahtjeva.
- HTTP statusni kod 508 (otkrivena petlja): Poslužitelj je otkrio beskonačnu petlju i ne može obraditi zahtjev.
- HTTP statusni kod 510 (nije prošireno): Poslužitelj implementira dodatne ekstenzije, koje je potrebno navesti u zaglavlju zahtjeva kako bi ga poslužitelj ispunio.
- HTTP statusni kod 511 (potrebna mrežna provjera autentičnosti): Autentifikaciju mora osigurati klijent kako bi poslužitelj mogao odobriti pristup klijentu.